1

django/appengine を使用して、特定のモデル フィールドを入力できるフォームを表示し、コードで追加のモデル フィールドを設定するにはどうすればよいですか。user が設定されていないため、 form.save(commit=False) を呼び出すと例外が発生します。このようなケースを処理する正しい Django の方法は何ですか?

次のモデルとフォーム クラスがあります。

class FooModel(db.Model):
    user = db.UserProperty(required=True)
    date = db.DateProperty(required=True)

class FooForm(djangoforms.ModelForm):
    class Meta:
        model = models.FooModel
        exclude = ['user']

そして、次のリクエスト ハンドラ コード:

if request.method == 'POST':
    form = forms.FooForm(request.POST)
    # form.save() raises an exception because 'user' is not set
    foo = form.save(commit=False)
    foo.user = users.get_current_user()
    foo.save()
4

1 に答える 1

1

SDK の例に合わせてrequired=True、UserProperty から省略できます。

于 2011-05-01T13:26:15.787 に答える