Django admin:在 search_fields 中使用一对一的关系
Posted
技术标签:
【中文标题】Django admin:在 search_fields 中使用一对一的关系【英文标题】:Django admin: use one-to-one relationship in search_fields 【发布时间】:2013-04-12 21:56:03 【问题描述】:我正在尝试使用以下 Model 和 ModelAdmin 类向我的模型管理列表页面添加搜索:
models.py
from django.contrib.auth.models import User
class UserProfile(models.Model):
user = models.OneToOneField(User)
country = CountryField(blank=True, null=True)
admin.py
from django.contrib import admin
from models import UserProfile
class UserProfileAdmin(admin.ModelAdmin):
list_display = ('user','country')
search_fields = ['user']
但我在尝试访问管理面板中的 UserProfile 时收到以下错误:
at /admin/profiles/userprofile/ Related Field has invalid
lookup: icontains
我还尝试了以下方法:
search_fields = ['user_username']
还有
search_fields = ['user_name']
def user_name(self,obj):
return obj.user.username
有什么解决办法吗?
【问题讨论】:
【参考方案1】:尝试使用user__username
,根据lookup API “follow” notation。
【讨论】:
以上是关于Django admin:在 search_fields 中使用一对一的关系的主要内容,如果未能解决你的问题,请参考以下文章
Django Admin Cookbook-8如何在Django admin中优化查询