Использование «app_label» в «Meta Class» решит эту проблему. Но он не будет создавать таблицы при выполнении команды «syncdb». Потому что имя приложения не будет совпадать с записью INSTALLED_APPS. Есть ли способ добиться того и другого (собственное имя приложения и создание таблиц с помощью syncdb)
Интерфейс администратора Django — пользовательское имя приложения
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