我有一个类似于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
列表,它仍然会拒绝我。我可以在用户页面上看到过滤器,但是当我点击它时它就会出错。我怎样才能做到这一点?
答案 0 :(得分:2)
我的猜测是您没有使用UserAdmin
模型注册此过滤器。
要在管理面板的Users
部分添加过滤器,您可以将其添加到应用的 admin.py 文件中的现有UserAdmin
模型中:
from django.contrib.auth.admin import UserAdmin
然后添加您想要的过滤器
UserAdmin.list_filter += ('orders__product_id',)
您现在应该在管理面板的User
部分右侧边栏中看到一个新过滤器。如果过滤器不正确,您应该在shell中看到错误。