Можете ли вы дать приложению Django подробное имя для использования всем администратором? - PullRequest
133 голосов
/ 04 марта 2009

Точно так же, как вы можете задавать подробные имена полей и моделей, которые появляются в админке Django, можете ли вы дать приложению собственное имя?

Ответы [ 12 ]

2 голосов
/ 03 марта 2014

Если у вас уже есть таблицы, использующие старое имя приложения, и вы не хотите их переносить, просто установите app_label на прокси исходной модели.

class MyOldModel(models.Model):
    pass

class MyNewModel(MyOldModel):
    class Meta:
        proxy = True
        app_label = 'New APP name'
        verbose_name = MyOldModel._meta.verbose_name

Тогда вам просто нужно изменить это в вашем admin.py:

#admin.site.register(MyOldModel, MyOldModelAdmin)
admin.site.register(MyNewModel, MyOldModelAdmin)

Имейте в виду, что URL будет / admin / NewAPPname / mynewmodel /, поэтому вы можете просто убедиться, что имя класса для новой модели выглядит как можно ближе к старой модели. 1009 *

0 голосов
/ 05 января 2015

Следующий фрагмент кода plug-and-play работает отлично с Django 1.7. Все, что вам нужно сделать, это скопировать приведенный ниже код в файл __init__.py конкретного приложения и изменить параметр VERBOSE_APP_NAME.

from os import path
from django.apps import AppConfig

VERBOSE_APP_NAME = "YOUR VERBOSE APP NAME HERE"


def get_current_app_name(file):
    return path.dirname(file).replace('\\', '/').split('/')[-1]


class AppVerboseNameConfig(AppConfig):
    name = get_current_app_name(__file__)
    verbose_name = VERBOSE_APP_NAME


default_app_config = get_current_app_name(__file__) + '.__init__.AppVerboseNameConfig'

Если вы используете это для нескольких приложений, вы должны выделить функцию get_current_app_name во вспомогательный файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...