2013-02-07 56 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。這是我想知道的))) –