【问题标题】:OneToOne relationship and django-autocomplete-lightOneToOne 关系和 django-autocomplete-light
【发布时间】:2015-11-20 18:11:03
【问题描述】:

我的 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, Cannot resolve keyword u'username' into field.

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

我该怎么办?

非常感谢。

【问题讨论】:

  • “icontains”后面还有更多信息吗?字段错误 = 找不到您要引用的字段,类型错误 = 格式匹配无效(尝试检查您在数据库中使用的数据类型,如何在 models.py 中对其进行初始化,以及不匹配等.)
  • @MoeFar 请停止对帖子进行一次性标签编辑。单标签编辑,特别是如果它们没有改进帖子的格式或内容,在这里会受到严重的反对。您的修改需要三个人才能批准,而且这些修改非常小,简直是在浪费我们的时间。

标签: python django django-orm one-to-one django-autocomplete-light


【解决方案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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-20
    • 2017-07-19
    • 2017-03-26
    • 1970-01-01
    • 2015-10-15
    • 2013-01-06
    • 2016-10-12
    • 1970-01-01
    相关资源
    最近更新 更多