क्या मैं एक फार्म बनाए बिना Django में एक व्यवस्थापक फ़ील्ड की आवश्यकता नहीं बना सकता हूं?


83

हर बार जब मैं Django के व्यवस्थापक भाग में एक नए खिलाड़ी में प्रवेश करता हूं तो मुझे एक त्रुटि संदेश मिलता है जो कहता है "यह फ़ील्ड आवश्यक है।"

क्या कस्टम फ़ॉर्म बनाने के बिना फ़ील्ड बनाने की आवश्यकता नहीं है? क्या मैं मॉडल-थ्रेड या admin.py के भीतर ऐसा कर सकता हूँ?

यहां मॉडल-थ्रू में मेरा वर्ग कैसा दिखता है।

class PlayerStat(models.Model):
    player = models.ForeignKey(Player)

    rushing_attempts = models.CharField(
        max_length = 100,
        verbose_name = "Rushing Attempts"
        )
    rushing_yards = models.CharField(
        max_length = 100,
        verbose_name = "Rushing Yards"
        )
    rushing_touchdowns = models.CharField(
        max_length = 100,
        verbose_name = "Rushing Touchdowns"
        )
    passing_attempts = models.CharField(
        max_length = 100,
        verbose_name = "Passing Attempts"
        )

धन्यवाद


4
फ़ील्ड विकल्प रिक्त = True ( docs.djangoproject.com/en/dev/ref/models/fields/#blank ) का उपयोग करके सबसे सरल तरीका है । वहाँ एक कारण है कि क्यों काम नहीं करेगा?
प्लैटिनम एज़्योर

जवाबों:


162

रख दो

blank=True

अपने मॉडल में अर्थात:

rushing_attempts = models.CharField(
        max_length = 100,
        verbose_name = "Rushing Attempts",
        blank=True
        )

ध्यान रखें कि यदि आप "फ़ॉर्म" का उपयोग करते हैं, तो रिक्त = सत्य काम नहीं करेगा। उदाहरण के लिए, मॉडल से रिक्त = सत्य काम नहीं करेगा: वर्ग MusModelForm (forms.ModelForm): नाम = रूपों। मॉडल = संगीतकार
टिमो

6

रिक्त = सत्य का प्रयोग करें, अशक्त = सत्य

class PlayerStat(models.Model):
    player = models.ForeignKey(Player)

    rushing_attempts = models.CharField(
        max_length = 100,
        verbose_name = "Rushing Attempts",
        blank=True,
        null=True
        )
    rushing_yards = models.CharField(
        max_length = 100,
        verbose_name = "Rushing Yards",
        blank=True,
        null=True
        )
    rushing_touchdowns = models.CharField(
        max_length = 100,
        verbose_name = "Rushing Touchdowns",
        blank=True,
        null=True
        )
    passing_attempts = models.CharField(
        max_length = 100,
        verbose_name = "Passing Attempts",
        blank=True,
        null=True
        )

3
आपको कम से कम Django 1.6 आगे से CharFields पर "null = True" की आवश्यकता नहीं होनी चाहिए, शायद पहले भी। इसी तरह से TextField, SlugField, EmailField, ... कुछ भी जो पाठ के रूप में संग्रहीत है।
जेनिवरेन

Django फ़ील्ड्स को कड़ाई से पाठ के लिए "null = True" की अनुशंसा नहीं करता है।
कास

1
@Palolo "स्ट्रिंग-आधारित फ़ील्ड्स जैसे कि CharField और TextField पर null का उपयोग करने से बचें। यदि किसी स्ट्रिंग-आधारित फ़ील्ड में null = True है, तो इसका मतलब है कि" बिना डेटा "के दो संभावित मान हैं: NULL, और खाली स्ट्रिंग। अधिकांश में। मामलों में, "कोई डेटा नहीं;" के लिए दो संभावित मानों का होना बेमानी है; Django सम्मेलन खाली स्ट्रिंग का उपयोग करने के लिए है, न कि NULL। एक अपवाद तब होता है जब एक CharField में अद्वितीय = ट्रू और ब्लैंक = ट्रू सेट दोनों होते हैं। इस स्थिति में, रिक्त = अनेक वस्तुओं को सहेजने पर अद्वितीय बाधा अवरोधों से बचने के लिए null = True की आवश्यकता होती है। मान। " docs.djangoproject.com/en/2.1/ref/models/fields/#null
मसूद खारी

1
हालांकि तर्क मेरे लिए असंबद्ध है। :)
मासूद खारी

1
@MassoodKhaari मैं देख रहा हूं कि आपका क्या मतलब है और मैं आपसे सहमत हूं कि "औचित्य असंबद्ध है"।
पाउलो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.