Как вставить флажок в форме django
У меня есть страница настроек, где пользователи могут выбрать, хотите ли они получать информационный бюллетень или нет.
Я хочу установить этот флажок, и я хочу, чтобы Django выбрал его, если в базе данных верно "информационный бюллетень". Как я могу реализовать в Django?
Ответы
Ответ 1
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
виджет по умолчанию.
Ответ 2
Вы используете виджет 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
Ответ 3
class PlanYourHouseForm(forms.ModelForm):
class Meta:
model = PlanYourHouse
exclude = ['is_deleted']
widgets = {
'is_anything_required' : CheckboxInput(attrs={'class': 'required checkbox form-control'}),
}
Ответ 4
Возможно, вы ищете логическое поле, например эту ссылку в django docs. В зависимости от того, как вы хотите создать форму, вы, вероятно, захотите использовать модельную форму для отображения этого.
Надеюсь, что это поможет.