2013-04-17 4 views
0

Как установить определенное значение для формы?Формы Django - заданное значение

Модель:

class Record(models.Model): 
    user=models.ForeignKey(User) 
    foo=models.CharField(max_length=100) 

Форма:

class AddForm(forms.ModelForm): 
    class Meta: 
     model=Record 

Просмотр:

class AddRecord(CreateView): 
    template_name="any/any.html" 
    form_class=AddForm 
    model=Record 

Если отправить <input type="text" name="user" value="ANY_USER_ID"/> и изменить запись для любого пользователя

Как установить значение по умолчанию пользователя поля является: request.session.user

ответ

2

Вы можете переопределить get_initial на вашем классе формы для возврата словаря исходных данных:

class AddRecord(CreateView): 
    def get_initial(self): 
     return {'user': self.request.user} 

Но то, что вы действительно хотите сделать, это не показывать пользователя в форме вообще, а устанавливать его автоматически при сохранении, как the documentation describes.

Смежные вопросы