जवाबों:
यदि आप केवल एक वेनिला फ़ॉर्म (एक मॉडलफ़ॉर्म नहीं) का उपयोग कर रहे हैं, तो आप फ़ील्ड प्रारंभिक मान ( https://docs.djangoproject.com/en/2.2/ref/forms/fields/#django.forms.Field ) सेट कर सकते हैं । प्रारंभिक ) की तरह
class MyForm(forms.Form):
my_field = forms.BooleanField(initial=True)
यदि आप एक मॉडलफ़ॉर्म का उपयोग कर रहे हैं, तो आप मॉडल फ़ील्ड ( https://docs.djangoproject.com/en/2.2/ref/models/fields/#default ) पर एक डिफ़ॉल्ट मान सेट कर सकते हैं , जो परिणामस्वरूप मॉडल मॉडल पर लागू होगा , पसंद
class MyModel(models.Model):
my_field = models.BooleanField(default=True)
अंत में, यदि आप गतिशील रूप से रनटाइम का चयन करना चाहते हैं या नहीं तो आपका क्षेत्र डिफ़ॉल्ट रूप से चुना जाएगा या नहीं, आप प्रारंभिक पैरामीटर का उपयोग उस फॉर्म के लिए कर सकते हैं जब आप इसे आरंभ करते हैं :
form = MyForm(initial={'my_field':True})
from django.db import models
class Foo(models.Model):
any_field = models.BooleanField(default=True)
initial
डॉक्स (अनबाउंड फॉर्म के लिए) में उल्लेख है , लेकिन नहींdefault
मैं 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)
Django 3.0
भी मान्य । धन्यवाद।
form = MyForm(initial={'my_field':True})
, मैं इसे सीधे प्रलेखन में नहीं मिला।