Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 创建模型实例时未设置BooleanField默认值_Django_Django Models_Django Admin - Fatal编程技术网

Django 创建模型实例时未设置BooleanField默认值

Django 创建模型实例时未设置BooleanField默认值,django,django-models,django-admin,Django,Django Models,Django Admin,当创建具有布尔字段my_boolean_字段且默认值设置为True的模型实例时,我得到一个错误: my_boolean_field is required 不应该设置为默认值吗 models.py 管理员 更改模型表单中的字段定义,以指定require=False class MyModelCreationForm(UserCreationForm): my_boolean_field = forms.BooleanField(initial=False, required=F

当创建具有
布尔字段
my_boolean_字段
默认值设置为
True
的模型实例时,我得到一个错误:

my_boolean_field is required
不应该设置为默认值吗

models.py

管理员


更改模型表单中的字段定义,以指定
require=False

class MyModelCreationForm(UserCreationForm):   

    my_boolean_field = forms.BooleanField(initial=False, required=False)

    class Meta:
        model = User
关于

注 由于默认情况下所有字段子类都具有required=True,因此此处的验证条件很重要。如果您希望在表单中包含一个布尔值,该布尔值可以是真的,也可以是假的(例如,选中或未选中的复选框),则必须记住在创建布尔字段时输入required=False


好的,我想如果用户没有设置它,它会被设置为默认值。
class MyModelCreationForm(UserCreationForm):   

    my_boolean_field = forms.BooleanField(initial=False)

    class Meta:
        model = User

class MyModelChangeForm(UserChangeForm):

    my_boolean_field = forms.BooleanField(initial=False)

    class Meta:
        model = User


class MyModelAdmin(UserAdmin):

    form = MyModelChangeForm
    add_form = MyModelCreationForm

    list_filter = ()
    list_display = ('username', 'my_boolean_field')

    fieldsets = (
        (None, {'fields': ('username', 'my_boolean_field', 'password' )}),
    )


    add_fieldsets = (
        (None, {
            'classes': ('wide',),
            'fields': ('username', 'my_boolean_field', 'password1', 'password2')}
        ),
    )

    def get_form(self, request, obj=None, **kwargs):
        form = super(MyModelAdmin, self).get_form(request, obj, **kwargs)
        if obj==None:
            form.base_fields['username'].widget.attrs['autocomplete'] = 'off'
            form.base_fields['password1'].widget.attrs['autocomplete'] = 'off'
            form.base_fields['password2'].widget.attrs['autocomplete'] = 'off'
        return form

samsic_site.register(MyModel, MyModelAdmin)
class MyModelCreationForm(UserCreationForm):   

    my_boolean_field = forms.BooleanField(initial=False, required=False)

    class Meta:
        model = User