Django管理员筛选用户

3

我有一个应用程序,类似于一个商店,每个商店都有许多产品,而一个产品有许多订单product_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

即使我在用户的“list_filter”列表中添加了“orders__product_id”,它仍然会拒绝权限。我可以在用户页面上看到过滤器,但当我点击它时,它就会出错。我该如何解决这个问题?

请参考此答案:https://dev59.com/cGw15IYBdhLWcg3wuuCn#6468224。 - amolbk
1个回答

2

我猜测你没有在UserAdmin模型中注册这个过滤器。要将过滤器添加到管理面板中的Users部分,可以将其添加到您应用程序的admin.py文件中现有的UserAdmin模型中:

from django.contrib.auth.admin import UserAdmin

然后添加您想要的过滤器

UserAdmin.list_filter += ('orders__product_id',)

现在您应该在管理员面板的右侧边栏的User部分看到一个新的过滤器。如果过滤器不正确,您应该在shell中看到错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接