2008-12-13 15 views

Antwort

4

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.

19

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" 
+0

Was Sie beschreiben, ist eine Funktion, die Felder verwenden kann, nicht ein Feld selbst. – Timo

12

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.

2

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.

+0

Es wurde nach einer Änderung des Feldnamens und nicht des Klassennamens gefragt. Also -1 – Timo