[英]Django admin filtering users
我有一个应用程序,就像一个store
,每个商店有很多products
,产品有很多orders
( product_id
, user_id
)。 在产品页面上,我显示拥有该产品的用户数量,并且我想放置一个链接,将我重定向到这些用户的列表。
我创建链接如下:
def users_link( self, product ):
url = urlresolvers.reverse( 'admin:auth_user_changelist' )
return u'<a href="%s?orders__product_id=%d">%s</a>' %( url, product.pk, product.users_count )
但是我收到以下错误:
DisallowedModelAdminLookup at /admin/auth/user/
Filtering by orders__product_id__exact not allowed
即使我将orders__product_id
添加到允许的list_filter
列表中,它仍然会拒绝我。 我可以在用户页面上看到过滤器,但是当我点击它时它就会出错。 我怎样才能做到这一点?
我的猜测是你没有用UserAdmin
模型注册这个过滤器。 要将过滤器添加到管理面板中的“ Users
部分,您可以将其添加到应用程序的admin.py文件中的现有UserAdmin
模型:
from django.contrib.auth.admin import UserAdmin
然后添加所需的过滤器
UserAdmin.list_filter += ('orders__product_id',)
您现在应该在管理面板的“ User
部分中看到右侧边栏中的新过滤器。 如果过滤器不正确,您应该在shell中看到错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.