繁体   English   中英

Django管理员过滤用户

[英]Django admin filtering users

我有一个应用程序,就像一个store ,每个商店有很多products ,产品有很多ordersproduct_iduser_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM