【问题标题】:Django FieldError at /admin/app/modelClass//admin/app/modelClass/ 处的 Django FieldError
【发布时间】:2015-07-18 18:55:01
【问题描述】:

我想我不会重复这个问题,因为我找不到我的问题的答案。

models.py中我的Model类如下:

class UserDetail(models.Model):
    user = models.OneToOneField(User)
    users = User.objects.all()
    Instance_ID = models.CharField(max_length=10, unique=True)
    Service_ID = models.CharField(max_length=15, unique=True)

    Reference_ID = models.CharField(max_length=15, unique=True)

admin.py如下:

class UserDetailAdmin(admin.ModelAdmin):
    list_display = ('user','Instance_ID','Service_ID','Reference_ID')
    search_fields = ('users__User','Instance_ID','Service_ID','Reference_ID')

如何搜索用户字段?如果我在 search_fields 中仅尝试“user”或“user_id”,则会收到以下错误。

TypeError at /admin/app/UserDetail/ ----->“相关字段查找无效:​​icontains”

如果我在 search_fields 中尝试“User__users”或“users__User”或“users”,我会收到以下字段错误:

FieldError at /admin/app/UserDetail/ ----> "无法将关键字 'users' 解析为字段。选项有:Reference_ID、Service_ID、Instance_ID、user、user_id"

我做错了什么?有人能指出我正确的方向吗

谢谢

【问题讨论】:

  • 拥有像 User.objects.all() 这样的字段引用几乎不是一个好主意。您可能想要的是一个将查询用作用户搜索字段的视图,然后调用 User.objects.filter(username=queryparameter)。
  • 是的,我刚刚删除了它。我只使用 'user=models.OneToOneField(User)' 和搜索字段为 'user__username'

标签: python django django-models django-admin


【解决方案1】:

假设您使用的是普通的 User 类,“Users”不是该类的字段,所以这不起作用。

我认为使用 users__username 作为搜索字段会起作用,但尚未测试。

【讨论】:

  • 感谢@Jason 冠军,是的,它解决了我的问题,但稍作修正,它适用于 'user__username'
猜你喜欢
  • 1970-01-01
  • 2014-07-31
  • 2012-10-31
  • 2018-05-08
  • 2011-12-26
  • 2018-09-08
  • 1970-01-01
  • 2018-01-21
相关资源
最近更新 更多