2013-02-07 53 views
1

我正在扩展django的用户模型。db_index和unique在OneToOne关系上为True

from django.contrib.auth.models import User 

class UserProfile(models.Model): 
    user = models.OneToOneField(User, _(u"User")) 

那么,是否有可能使用db_index = True和unique = True与用户字段?然后我需要通过用户名实现搜索。我想过狮身人面像。对此有何想法?也许有一些好的教程链接? TIA

+2

你不必把唯一的因为它的OnetoOneField – catherine

回答

5

通过用户名搜索也只是:

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。)

+0

Thanx。这是我想知道的))) –