class Task(models.Model):
owner_set=set()
for each in User.objects.all():
owner_set.add((each.username,each.username))
Owner = models.CharField(max_length=100,choices=owner_set)
在代码中,我通过User的选择创建一个字段,但这会导致一个问题: 当我创建新用户时,新用户名将不会在“所有者”字段中显示; 我需要重启服务器。所以我希望所有者归档应该是动态的,有没有办法做到这一点?
我不想使用Owner= models.ForeignKey(User,...)
,因为我可能会使用不仅来自auth_user的名称。
答案 0 :(得分:1)
为什么要将所有者存储为CharField?如果它是对User对象的引用,则它应该是ForeignKey。
评论后修改您的数据模型似乎已损坏。然而,如果你真的想把它保存为CharField,你就不应该尝试在模型中设置选择。定义自定义表单,并使用ModelChoiceField或在表单的__init__
方法中设置选项。