2013-03-28 13 views
5

In der Django Administrationsoberfläche haben wir unsere Modelle nach App gruppiert. Nun, ich weiß, wie die Modellbezeichnung anpassen:ausführliche Name App in Django Admin-Schnittstelle

class MyModel (models.Model): 
    class Meta: 
    verbose_name = 'My Model' 
    verbose_name_plural = 'My Models' 

Aber ich konnte den Namen der Anwendung nicht anpassen. Gibt es einen ausführlichen Namen für die Apps?

+0

möglich Duplikat [Können Sie eine Django geben App einen ausführlichen Namen für die Verwendung in dem gesamten admin?] (http://stackoverflow.com/questions/612372/can-you-give-a-django-app-a-verbose-name-for-use-threatout-the-admin) –

Antwort

13

Seit django 1.7 app_label funktioniert nicht. Sie müssen den Anweisungen https://docs.djangoproject.com/en/1.7/ref/applications/#for-application-authors folgen. Das heißt:

  1. erstellen apps.py im Verzeichnis Ihres App
  2. schreiben ausführlichen Namen:

    # myapp/apps.py 
    
    from django.apps import AppConfig 
    
    class MyAppConfig(AppConfig): 
        name = 'myapp' 
        verbose_name = "Rock ’n’ roll" 
    
  3. In den Einstellungen INSTALLED_APPS ändern Projektes:

    INSTALLED_APPS = [ 
        'myapp.apps.MyAppConfig', 
        # ... 
    ] 
    

    Oder, du kannst l myapp.apps Traufe in INSTALLED_APPS und machen Sie Ihre Anwendung diese AppConfig Unterklasse standardmäßig geladen werden, wie folgt:

    # myapp/__init__.py 
    
    default_app_config = 'myapp.apps.MyAppConfig' 
    

alles :)

-1

app_label attr auf Ihre MyModel inneren META Klasse hinzufügen

class MyModel (models.Model): 
    class Meta: 
    verbose_name = 'My Model' 
    verbose_name_plural = 'My Models' 
    app_label = 'wow_app_name' 
+9

'app_label = 'wow app name'' kann viele Fehler verursachen – andi

+0

@andi danke für die Erwähnung, dass ich das 'app_label' aktualisiert habe –

1

die Meta-Klasse in Ihrem Modell verwenden und die Definition der app_label es funktioniert, aber wahrscheinlich werden Sie, dass für jedes Modell in Ihrem Modul zu tun haben. Ein anderer Ansatz besteht darin, i18n zu verwenden. In Ihrer po-Datei, wenn Sie eine mit Ihrer app_label definieren, sollten Sie gut sein.

In Ihrer App hinzufügen/bearbeiten po Datei * app_label> locale> ru> django.po *

#set app label string 
msgid <app_label> 
msgstr "Ваше приложение этикетке" 

Sie können mehr über die Internationalisierung lesen here und über die Übersetzung here.