0
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)

在代码中,我通过用户的选择创建了一个字段,但这会导致一个问题:当我创建一个新用户时,新用户名不会出现在“所有者”的字段中;我需要重新启动服务器。所以我希望所有者提交的文件应该是动态的,有没有办法做到这一点?

我不想使用,Owner= models.ForeignKey(User,...)因为可能我不仅会使用来自 auth_user 的名称。

4

1 回答 1

1

为什么要将 Owner 存储为 CharField?如果它是对 User 对象的引用,它应该是 ForeignKey。

评论后编辑您的数据模型似乎已损坏。不过,如果您真的想将其保留为 CharField,则根本不应该尝试在模型中设置选项。定义一个自定义表单并使用 ModelChoiceField 或在表单的__init__方法中设置选项。

于 2012-12-03T13:26:05.253 回答