Nat*_*atz 7 django django-admin
换句话说,我想禁止用户在所有应用程序中编辑或查看除自己输入数据之外的任何内容.
我在这里读到内置管理应用程序可能无法做到这一点.如果有,是否有可用的扩展名?
谢谢
可以办到。您需要首先在 admin.py 中创建适当的 modelAdmin。
对于列表“显示”过滤,修改查询集方法:
class MyModelAdmin(admin.ModelAdmin):
def queryset(self, request):
return Entry.objects.filter(owner=request.user)
Run Code Online (Sandbox Code Playgroud)
对于字段过滤,根据要限制的字段类型,您可以覆盖适当的方法。
相关的 django 文档在这里: https://docs.djangoproject.com/en/1.3/ref/contrib/admin/#django.contrib.admin.ModelAdmin.formfield_for_foreignkey
要限制外键字段输出,您可以执行以下操作:(来自 django 文档)
class MyModelAdmin(admin.ModelAdmin):
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == "car": # The name of the field you want to limit
kwargs["queryset"] = Car.objects.filter(owner=request.user)
return super(MyModelAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4868 次 |
| 最近记录: |