Django: Создание формы, которая не устанавливает все обязательные поля модели?

Используя django/appengine, как я могу представить форму, которая позволяет вводить определенные поля модели, а затем устанавливать дополнительные поля модели в коде. Вызов 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()

person anthony    schedule 01.05.2011    source источник


Ответы (1)


Чтобы соответствовать примеру SDK, вы можете опустить required=True в своем свойстве пользователя.

person Drew Sears    schedule 01.05.2011
comment
но пользователь, на самом деле, требуется. - person anthony; 01.05.2011