2

我有一些django-autocomplete-light問題,我無法自行解決。OneToOne關係和django-autocomplete-light

models.py

from django.contrib.auth.models import User 
class UserProfile(models.Model):  
    user = models.OneToOneField(User, related_name="user_profile") 
    ... 

autocomplete_light_registry.py

class UserProfileAutocomplete(autocomplete_light.AutocompleteModelBase): 
    model = UserProfile 
    search_fields = ['username'] 
    attrs = { 
     'data-autocomplete-minimum-characters': 1, 
    } 

autocomplete_light.register(UserProfileAutocomplete) 

我試過,但它提出了一個錯誤:FieldError,無法解析關鍵字u'username」到現場。

我已經嘗試過「用戶」,但它提出:類型錯誤,相關領域得到了無效查詢:icontains

我應該怎麼辦?

非常感謝。

+0

是否有 「icontains」 之後的更多信息?字段錯誤=無法找到您想要引用的字段,輸入錯誤=無效格式匹配(嘗試檢查您在數據庫中使用的數據類型,如何在models.py中初始化它,以及不匹配等) – jdero

+0

@MoeFar請停止對帖子進行一次性標籤修改。單個標籤的編輯,特別是如果他們沒有改進這個帖子的格式或內容的話,那麼這裏就會大打折扣。需要三人批准您的編輯,而這些編輯如此輕微,這實際上浪費了我們的時間。 – Zizouz212

回答

1

您需要用戶模型的username。所以你需要user__username

class UserProfileAutocomplete(autocomplete_light.AutocompleteModelBase): 
    model = UserProfile 
    search_fields = ['user__username'] # <-- user__username instead username 
    attrs = { 
     'data-autocomplete-minimum-characters': 1, 
    } 

    autocomplete_light.register(UserProfileAutocomplete)