Я использую BooleanField в django. По умолчанию флажок, созданный им, не установлен, я хочу, чтобы состояние было проверено по умолчанию, как это сделать?
Django: BooleanField, как установить значение по умолчанию true?
Ответ 1
Если вы просто используете ванильную форму (не ModelForm), вы можете установить начальное значение поля (http://docs.djangoproject.com/en/dev/ref/forms/fields/#django.forms.Field. начальный) как
class MyForm(forms.Form):
my_field = forms.BooleanField(initial=True)
Если вы используете ModelForm, вы можете установить значение по умолчанию в поле модели (http://docs.djangoproject.com/en/dev/ref/models/fields/#default), которое будет применяться к результирующей ModelForm., лайк
class MyModel(models.Model):
my_field = models.BooleanField(default=True)
Наконец, если вы хотите динамически выбирать во время выполнения, будет ли выбрано ваше поле по умолчанию, вы можете использовать начальный параметр формы при его инициализации:
form = MyForm(initial={'my_field':True})
Ответ 2
from django.db import models
class Foo(models.Model):
any_field = models.BooleanField(default=True)
Ответ 3
from django.db import models
class Foo(models.Model):
any_field = models.BooleanField(default=True)
Решите мою проблему, мне нужно было использовать в моделях вместо форм
Ответ 4
Я использую Django == 1.11. Ответ получить большинство голосов на самом деле неверно. Проверяя документ от django, он говорит:
начальный - значение для использования в этом поле начального отображения. Это значение не используется в качестве запасного варианта, если данные не указаны.
И если вы покопаетесь в коде процесса проверки формы, вы обнаружите, что для каждого поля форма будет называть его value_from_datadict
виджета, чтобы получить фактическое значение, так что это место, где мы можем ввести значение по умолчанию.
Чтобы сделать это для BooleanField
, мы можем наследовать от CheckboxInput
, переопределить значение по умолчанию value_from_datadict
и функцию init
.
class CheckboxInput(forms.CheckboxInput):
def __init__(self, default=False, *args, **kwargs):
super(CheckboxInput, self).__init__(*args, **kwargs)
self.default = default
def value_from_datadict(self, data, files, name):
if name not in data:
return self.default
return super(CheckboxInput, self).value_from_datadict(data, files, name)
Затем используйте этот виджет при создании BooleanField
.
class ExampleForm(forms.Form):
bool_field = forms.BooleanField(widget=CheckboxInput(default=True), required=False)
Ответ 5
В models.py:
Class a(models.model):
Var = models.BooleanField(default=True)
Просто введите нужное значение в круглые скобки
Ответ 6
from django.db import models
class Nepal(models.Model)
Is_active = models.BooleanField(default=True)