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 に答える