Подтвердить что ты не робот

Как дать начальное значение в 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".

4b9b3361

Ответ 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