2011-09-07 16 views
50

Cada vez que ingreso un nuevo jugador en la parte de administración de Django aparece un mensaje de error que dice "Este campo es obligatorio".¿Puedo hacer un campo de administrador no requerido en Django sin crear un formulario?

¿Hay alguna manera de hacer un campo no requerido sin tener que crear un formulario personalizado? ¿Puedo hacer esto en models.py o admin.py?

Así es mi clase en models.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" 
     ) 

Gracias

+2

La forma más simple es usar la opción de campo blank = True (https://docs.djangoproject.com/en/dev/ref/models/fields/#blank). ¿Hay alguna razón por la que eso no funcionará? –

Respuesta

99

sólo hay que poner

blank=True 

en su modelo es decir .:

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

Tenga en cuenta que si utiliza "formularios", el espacio en blanco = verdadero no funcionará. P.ej. aquí el espacio en blanco = verdadero del modelo no funcionará: class MusModelForm (forms.ModelForm): name = forms.CharField (widget = forms.Textarea) # ~ mitglieder = forms.CharField (widget = forms.Textarea) class Meta: model = Músico – Timo

3

uso en blanco = True, null = True

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

No debería necesitar "null = True" en CharFields al menos desde Django 1.6 adelante, probablemente incluso antes. Del mismo modo para TextField, SlugField, EmailField, ... todo lo que se almacena como texto. – jenniwren

+0

Django no recomienda "null = True" para campos que contienen estrictamente texto. – kas

Cuestiones relacionadas