Django: BooleanField, как установить значение по умолчанию true?

Я использую BooleanField в django. По умолчанию флажок, созданный им, не установлен, я хочу, чтобы состояние было проверено по умолчанию, как это сделать?

Ответ 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)