【发布时间】: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