/ / मॉड्यूल उदाहरण बनाते समय BooleanField डिफ़ॉल्ट मान सेट नहीं किया गया - django, django-models, django-admin

मॉडल उदाहरण बनाते समय BooleanField डिफ़ॉल्ट मान सेट नहीं किया गया - django, django-models, django-admin

एक मॉडल का उदाहरण बनाते समय BooleanField my_boolean_field के साथ default करने के लिए सेट True, मुझे एक त्रुटि मिलती है:

my_boolean_field is required

इसे डिफ़ॉल्ट मान पर सेट नहीं किया जाना चाहिए?

models.py

class MyModel(User):

my_boolean_field = models.BooleanField(default=False)

admin.py

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)

उत्तर:

जवाब के लिए 3 № 1

निर्दिष्ट करने के लिए अपने मॉडल फॉर्म में फ़ील्ड परिभाषा बदलें require=False.

class MyModelCreationForm(UserCreationForm):

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

class Meta:
model = User

पर ध्यान दें BooleanField संदर्भ

ध्यान दें चूंकि सभी फ़ील्ड उप-वर्गों में हैआवश्यक = डिफ़ॉल्ट रूप से सही, यहां सत्यापन स्थिति महत्वपूर्ण है। यदि आप अपने फॉर्म में एक बूलियन शामिल करना चाहते हैं जो या तो सही या गलत हो सकता है (उदा। चेक या अनचेक चेकबॉक्स), तो आपको बूलियनफ़िल्ल्ड बनाने के दौरान आवश्यक = गलत में गुजरना याद रखना चाहिए।