Интерфейс администратора Django — пользовательское имя приложения

Использование «app_label» в «Meta Class» решит эту проблему. Но он не будет создавать таблицы при выполнении команды «syncdb». Потому что имя приложения не будет совпадать с записью INSTALLED_APPS. Есть ли способ добиться того и другого (собственное имя приложения и создание таблиц с помощью syncdb)


person Sivasubramaniam Arunachalam    schedule 30.10.2010    source источник
comment
Вы пытаетесь иметь собственные имена таблиц? Чего вы пытаетесь достичь?   -  person Dominic Rodger    schedule 30.10.2010
comment
@Dominic Я думаю, он хочет изменить имена (метки) приложений, которые отображаются в интерфейсе администратора, на некоторые пользовательские имена.   -  person Ankit Jaiswal    schedule 30.10.2010
comment
@Доминик @ананд прав. Я хотел бы иметь собственные имена приложений в интерфейсе администратора.   -  person Sivasubramaniam Arunachalam    schedule 31.10.2010
comment
Проблема здесь в том, что если мы используем app_label в моделях, он не будет создавать таблицы базы данных при выполнении «syncdb».   -  person Sivasubramaniam Arunachalam    schedule 31.10.2010
comment
Не элегантное решение, но вы можете следовать второму ответу на stackoverflow.com/questions/612372/. Скопируйте шаблон администратора и укажите там имя приложения.   -  person Ankit Jaiswal    schedule 01.11.2010


Ответы (1)


Я не пробовал это, но здесь там — это решение, которое должно позволять изменять метку приложения при работе с syncdb.

class model_module1(models.model):
    [...]

    class Meta:
        app_label = "Cool module name"
        db_table = "module1_model"

class model_module2(models.model):
    [...]

    class Meta:
        app_label = "Cool module name"
        db_table = "module2_model"

Это имеет смысл, так как имя таблицы сделано явным, поэтому при запуске syncdb нет guessing. Недостатком является то, что эти две опции Meta должны быть указаны в каждой модели приложения.

person Armando Pérez Marqués    schedule 27.06.2011