использование uuid в качестве идентификатора / pk на странице администрирования django breaks - PullRequest
2 голосов
/ 02 февраля 2011

Я использую django 1.0.4 и имею 3 модели: Категория <-1-m-> Элемент <-1-m-> Изображение.

Недавно я изменил id / pk на uuid:

id = models.CharField(max_length=32, primary_key=True,
                      default=make_uuid, editable=False)
...
def make_uuid():
    return str(uuid.uuid4()).replace('-','')

после того, как я начал использовать uuid, страница администратора Предмета больше не позволяла мне добавлять изображение.это дало бы мне ошибку проверки формы, даже при том, что нет никакой ошибки.Кроме того, если у предмета есть изображение, я не могу изменить категорию, это даст мне следующую ошибку:

KeyError at /admin/inventory/item/90965921681b4b69880b36bd716b0831/
id
...
/local/env/bfi2/lib/python2.6/site-packages/Django-1.0.4-py2.6.egg/django/forms/forms.py in _raw_value
 213. field = self.fields[fieldname] 

Я думаю, что это похоже на следующую ошибку: http://code.djangoproject.com/ticket/10992.в идеале я бы хотел избежать обновления django и просто залатать необходимые файлы.кто-нибудь еще сталкивался с этой проблемой?

спасибо, Стив

1 Ответ

2 голосов
/ 02 февраля 2011

Я сталкивался с такими проблемами, но они были решены с помощью django-extensions UUID field.
Но я не могу гарантировать, что это поле будет работать со старой версией django, это было на 1.2.3

...