Как дать начальное значение в modelform
Как назначить начальные значения для полей внутри ModelForm? например:
class Form1(forms.Form):
title=forms.CharField(initial="hello")
Что будет эквивалентно этому, используя modelForm, базовый синтаксис которого примерно такой:
class Form2(djangoforms.ModelForm):
class Meta:
model=SomeModel
fields=('title',)
Я пытаюсь создать CRUD. Поскольку я делаю это в проекте appengine, я не могу использовать общие представления. Appengine предоставил нам djangoforms.ModelForm
, который работает так же, как django ModelForm
, но использует appengine datastore.
Мне нужна вышеуказанная функциональность, чтобы сделать часть "edit".
Ответы
Ответ 1
Обычно вы передадите объект модели, который вы редактируете, в качестве ключевого слова arg в форме:
Form2(instance = somemodelobject)
, но я не знаю, работает ли он на GAE.
Вы всегда можете передать начальный словарь в свой конструктор формы, например
Form2(initial = {"title": "blahblah"})
Ответ 2
По умолчанию значения формы модели взяты из самой модели. Например:
class SomeModel(models.Model):
title = models.CharField(max_length=45, default="hello")
Вам не нужно вносить изменения в модель ModelForm:
class RequestForm(forms.ModelForm):
class Meta:
model = SomeModel