Wie der Titel vermuten lässt. Ich möchte die Bezeichnung eines einzelnen Feldes in der Admin-Anwendung ändern können. Ich kenne das Form.field-Attribut, aber wie bekomme ich mein Model oder ModelAdmin, um diese Informationen weiterzugeben?Können Sie eine Feldbezeichnung in der Django Admin-Anwendung ändern?
Antwort
Die verbose name des Feldes ist der (optionale) erste Parameter bei Feldaufbau.
Aufbauend auf Javiers Antwort; Wenn Sie ein Etikett in Formularen (am Front-End) und ein anderes Label auf Admin benötigen, empfiehlt es sich, das interne (Admin) im Modell zu setzen und es in Formularen zu überschreiben. Der Administrator verwendet das Label im Modellfeld natürlich automatisch.
Wenn Ihr Feld eine Eigenschaft (eine Methode), dann sollten Sie verwenden short_description:
class Person(models.Model):
...
def address_report(self, instance):
...
# short_description functions like a model field's verbose_name
address_report.short_description = "Address"
Als Javier vorgeschlagen, dass Sie die ausführlichen Namen in Ihren Feldern in model.py verwenden können. Beispiel wie unten,
class Employee(models.Model):
name = models.CharField(max_length = 100)
dob = models.DateField('Date Of Birth')
doj = models.DateField(verbose_name='Date Of Joining')
mobile=models.IntegerField(max_length = 12)
email = models.EmailField(max_length=50)
bill = models.BooleanField(db_index=True,default=False)
proj = models.ForeignKey(Project, verbose_name='Project')
Hier ist die dob, doj und proj Dateien wird seinen Namen in Admin-Form gemäß der verbose_name zu diesen genannten Bereichen anzuzeigen.
Meta Optionen ¶
Geben Sie Ihr Modell Metadaten durch eine innere Klasse Meta verwenden, etwa so:
from django.db import models
class MyClassName(models.Model):
class Meta:
verbose_name = "Question"
verbose_name_plural = "Questions"
Menschen lesbaren Singular und Plural Namen (verbose_name und verbose_name_plural). Keine sind erforderlich, und das Hinzufügen der Klasse Meta zu einem Modell ist vollständig optional.
Es wurde nach einer Änderung des Feldnamens und nicht des Klassennamens gefragt. Also -1 – Timo
Was Sie beschreiben, ist eine Funktion, die Felder verwenden kann, nicht ein Feld selbst. – Timo