2017-08-15 5 views
1

Ich versuche, eine bearbeitbare = False Feld, um ein benutzerdefinierten Admin-Formular hinzufügen, aber ich erhalte eine Fehlermeldung:Wie fügen Sie ein nicht editierbare Feld, um eine benutzerdefinierte Admin-Form in Django

django.core.exceptions.FieldError: 'help_num' cannot be specified for 
Investigation model form as it is a non-editable field 

Diese in meinem Modell ist wahr, ich habe es als solche eingestellt:

models.py

help_num = models.CharField(max_length=17, unique=True, default=increment_helpdesk_number, editable=False) 

forms.py

class HelpDeskModelForm(forms.ModelForm): 

    class Meta: 
     model = HelpDesk 
     fields = [ 
      "help_num", 
      "help_types", 
      ... 
      "help_summary" 
      ] 

admin.py

class HelpDeskModelAdmin(admin.ModelAdmin): 
    readonly_fields=('help_num',) 
    form = HelpDeskModelForm 

fügte ich die nur lesbar admin.py, aber immer noch gibt Fehler. Nicht sicher, was ich hier falsch mache.

Antwort

1

Sie müssen das nicht editierbare Feld aus Ihrer Klasse Formular Liste der Felder entfernen:

class HelpDeskModelForm(forms.ModelForm): 

    class Meta: 
     model = HelpDesk 
     fields = [ 
      #"help_num", 
      "help_types", 
      ... 
      "help_summary" 
      ] 

und halten Sie die Read-Only in der Modeladmin Felder wie Sie haben:

class HelpDeskModelAdmin(admin.ModelAdmin): 
    readonly_fields=('help_num',) 
    form = HelpDeskModelForm 
+0

ich konnte Ich habe geschworen, dass ich es versucht habe. Vielleicht habe ich einen Tippfehler gemacht, als ich es versuchte. Vielen Dank. Antwort jetzt markieren – tryin2code

Verwandte Themen