Django: переопределение verbose_name для AutoField без удаления модели - PullRequest
3 голосов
/ 03 ноября 2008

Я использую 0.97-pre-SVN-unknown релиз Django.

У меня есть модель, для которой я не дал ни одного primary_key. Следовательно, Django автоматически предоставляет AutoField, которое называется «id». Все хорошо с этим. Но теперь я должен изменить «verbose_name» этого AutoField на нечто иное, чем «id». Я не могу переопределить поле «id» обычным способом, потому что это потребует удаления / сброса всей модели и ее данных (что строго не вариант). Я не могу найти другой способ обойти это. Достигает ли я того, чего можно достичь? Если бы вы могли предложить какие-либо альтернативы, которые позволили бы мне избавиться от того, что я хочу, без необходимости бросать модель / стол, я был бы счастлив.

Большое спасибо.

Ответы [ 2 ]

4 голосов
/ 03 ноября 2008

Хм ... а как насчет явной записи поля id в определении модели? Вот так например:

class Entry(models.Model):
   id = models.AutoField(verbose_name="custom name")
   # and other fields...

Не требует изменений в базе данных.

2 голосов
/ 03 ноября 2008

Просмотрите параметры командной строки для manage.py; есть команда, чтобы выгрузить все данные модели в JSON, и другая команда, чтобы загрузить их обратно из JSON. Вы можете экспортировать все данные модели, добавить новое поле в модель, а затем импортировать данные обратно. Просто убедитесь, что для параметра db_column установлено значение 'id', чтобы не нарушать существующие данные.

Редактировать : В частности, вам нужны команды dumpdata и loaddata.

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