1. ホーム
  2. python

[解決済み] djangoのフォームにチェックボックスを挿入する方法

2022-02-11 03:41:04

質問

ユーザーがニュースレターを受け取るかどうかを選択できる設定ページがあるのですが、どうすればいいですか?

このためにチェックボックスが必要で、データベースで 'newsletter' が真であれば、Django がそれを選択するようにしたいのです。Django でどのように実装すればよいですか?

どのように解決するのですか?

models.py。

class Settings(models.Model):
    receive_newsletter = models.BooleanField()
    # ...

forms.py。

class SettingsForm(forms.ModelForm):
    receive_newsletter = forms.BooleanField()

    class Meta:
        model = Settings

また、自動的に receive_newsletter から True アプリケーションの基準に従って、フォームの中でそれを考慮します。 __init__ :

class SettingsForm(forms.ModelForm):

    receive_newsletter = forms.BooleanField()

    def __init__(self):
        if check_something():
            self.fields['receive_newsletter'].initial  = True

    class Meta:
        model = Settings

ブール型フォームフィールドは CheckboxInput ウィジェットで デフォルト .