Я пытаюсь расширить модель аутентификации django и добавить пользователю специальные поля, используя OneToOneField.Поле Django OneToOne в строковом представлении модели
from django.db import models
from django.contrib.auth.models import User
class GastroCustomer(models.Model):
user = models.OneToOneField(User)
barcode = models.IntegerField()
balance = models.IntegerField()
def __unicode__(self):
return self.user
Это прекрасно работает вне модуля администратора. Но если теперь я начинаю добавлять новый GastroCustomer
через интерфейс администратора я получаю: 'User' object has no attribute '__getitem__'
Если изменить __unicode__(self)
на что-то простое, например,
def __unicode__(self):
return "foo"
эта ошибка не возникает. Есть ли способ выяснить, когда это поле пользователя находится в некотором недействительном состоянии и изменить строковое представление для этого случая? Может кто-нибудь представить, почему __unicode__(self)
вызывается до того, как запись «правильная»?
Спасибо это работает. Я думал, что пользовательское поле переадресует вызов «__unicode __() »урока« User-Model ». –