我正在扩展django的用户模型。
from django.contrib.auth.models import User
class UserProfile(models.Model):
user = models.OneToOneField(User, _(u"User"))
那么,是否可以在用户字段中使用db_index = True和unique = True?然后我需要通过用户名实现搜索。我想到了狮身人面像。有什么想法吗?也许有一些很好的教程链接? TIA
答案 0 :(得分:6)
按用户名搜索只会是:
UserProfile.objects.filter(user__username="dave")
另外,我不确定你的第二个参数应该做什么;声明应如下:
class UserProfile(models.Model):
user = models.OneToOneField(User)
models.OneToOneField
的所有额外参数都应该是关键字参数。
正如cathy指出,models.OneToOneField
暗示unique=True
。 IIRC,这意味着Django将自动为该字段创建索引。 (如果不想要索引,则需要明确设置db_index=False
。)