ユーザーがニュースレターを受信するかどうかを選択できる設定ページがあります。
これにチェックボックスが必要です。データベースで 'newsletter'がtrueの場合、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
ウィジェットを使用します。
class PlanYourHouseForm(forms.ModelForm):
class Meta:
model = PlanYourHouse
exclude = ['is_deleted']
widgets = {
'is_anything_required' : CheckboxInput(attrs={'class': 'required checkbox form-control'}),
}
フォームでCheckBoxInputウィジェットを使用します。
https://docs.djangoproject.com/en/dev/ref/forms/widgets/#Django.forms.CheckboxInput
ModelFormsを直接使用している場合は、モデルでBooleanFieldを使用するだけです。
https://docs.djangoproject.com/en/stable/ref/models/fields/#booleanfield