【发布时间】:2013-04-13 06:10:05
【问题描述】:
我尝试扩展 django 的身份验证模型,并通过 OneToOneField 向用户添加一些特殊字段。
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) 吗?
【问题讨论】:
标签: django django-models