2011-09-07 6 views
50

Django'nun Yönetici bölümünde yeni bir oyuncuya her girdiğimde "Bu alan gereklidir" yazan bir hata mesajı alıyorum.Bir form oluşturmadan Django'da gerekli olmayan bir yönetici alanı yapabilir miyim?

Özel form oluşturmak zorunda kalmadan bir alan oluşturmanın bir yolu var mı? Bunu models.py veya admin.py içinde yapabilir miyim?

Model.py'deki sınıfım şunun gibi görünüyor.

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" 
     ) 

Teşekkür

+2

En basit yol, alan seçeneğini blank = True (https://docs.djangoproject.com/en/dev/ref/models/fields/#blank) kullanmaktır. Bunun işe yaramayacağının bir sebebi var mı? –

cevap

99

Sadece modeli yani .: içinde

blank=True 

koyun

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

"Formlar" kullanırsanız, boş = true çalışmaz. Örneğin. Burada boş = modelden doğru çalışmaz: sınıf MusModelForm (forms.ModelForm): name = forms.CharField (widget = forms.Textarea) # ~ mitglieder = forms.CharField (widget = forms.Textarea) sınıfı Meta: model = Müzikça – Timo

3

Kullanım = boş Doğru, Doğru = null

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 
     ) 
+1

CharFields üzerinde "Null = True", en azından Django 1.6'dan, muhtemelen daha da önce, ileriye ihtiyacınız olmamalıdır. Benzer şekilde TextField, SlugField, EmailField, ... metin olarak saklanan her şey için. – jenniwren

+0

Django, metni kesinlikle içeren alanlar için "null = True" önermez. – kas

İlgili konular