如何覆盖 Django 管理
How to override Django Admin
我有两个模型 Restaurant 和 Details。超级用户为每个餐厅分配一个 user.When 用户登录到管理员我只希望显示与该用户的餐厅相关的详细信息,他也应该能够编辑它们。
我试图覆盖管理员的查询集功能,但没有 success.Any 帮助将不胜感激。这是我到目前为止所做的
我只是 Django 的初学者。
class RestaurantAdmin(admin.ModelAdmin):
model = Details
def save_model(self, request, obj, form, change):
obj.user = request.user
super(RestaurantAdmin, self).save_model(request, obj, form, change)
def queryset(self, request):
print(request.user)
qs = super(ResaturantAdmin, self).queryset(request)
# If super-user, show all comments
if request.user.is_superuser:
return qs
return qs.filter(owner=request.user)
admin.site.register(Restaurant)
admin.site.register(Details,RestaurantAdmin)
您需要覆盖的方法称为 get_queryset
,而不是 queryset
。
我有两个模型 Restaurant 和 Details。超级用户为每个餐厅分配一个 user.When 用户登录到管理员我只希望显示与该用户的餐厅相关的详细信息,他也应该能够编辑它们。 我试图覆盖管理员的查询集功能,但没有 success.Any 帮助将不胜感激。这是我到目前为止所做的
我只是 Django 的初学者。
class RestaurantAdmin(admin.ModelAdmin):
model = Details
def save_model(self, request, obj, form, change):
obj.user = request.user
super(RestaurantAdmin, self).save_model(request, obj, form, change)
def queryset(self, request):
print(request.user)
qs = super(ResaturantAdmin, self).queryset(request)
# If super-user, show all comments
if request.user.is_superuser:
return qs
return qs.filter(owner=request.user)
admin.site.register(Restaurant)
admin.site.register(Details,RestaurantAdmin)
您需要覆盖的方法称为 get_queryset
,而不是 queryset
。