Как изменить значение TextInput через ModelForm в Django? - PullRequest
0 голосов
/ 26 сентября 2010

У меня есть ModelForm следующим образом:

class ArticleForm(forms.ModelForm):
    title = forms.CharField(max_length=200)
    body = forms.CharField(widget=forms.Textarea)
    new_status = forms.CharField(label="Status", max_length=1,  widget=forms.Select(choices=APPS_ARTICLE_STATUS))
    tags = forms.CharField(label="Generic Tags", max_length=200, widget=forms.TextInput(attrs={'size':'40'}))

    class Meta:
        model = Article
        fields = ['title', 'body']

Из этого title , body и new status загружаются непосредственно из модели Article. Я хочу заполнить поле tags вручную. Как мне это сделать?

Заранее спасибо.

1 Ответ

0 голосов
/ 26 сентября 2010

Вы можете установить начальное свойство с помощью метода __ init ___ . Кроме того, вам не нужно снова указывать каждую метку / виджет поля, если для модели установлено verbose_name, и вам нравятся виджеты по умолчанию.

class ArticleForm(forms.ModelForm):

    tags = forms.CharField(label="Generic Tags", max_length=200, widget=forms.TextInput(attrs={'size':'40'}))

    class Meta:
        model = Article
        fields = ['title', 'body', 'new_status']

    def __init__(self, *args, **kwargs):
        super(ArticleForm, self).__init__(*args, **kwargs)
        self.fields["tags"].initial = "Some initial value"

Я предполагаю, что ваше начальное значение будет каким-то динамическим. Если он действительно статический, вы можете передать в качестве параметра начальный параметр в CharField ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...