Skip to main content
 首页 » 编程设计

python之OneToOne 关系和 django-autocomplete-light

2025年05月04日32bjzhanghao

我无法自行解决 django-autocomplete-light 的一些问题。

模型.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' 解析为字段。

我已经尝试过“用户”,但它引发了:TypeError,相关字段得到了无效的查找:icontains

我该怎么办?

非常感谢。

请您参考如下方法:

您需要用户模型的用户名。所以你需要 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)