在django的管理视图中更改字段

时间:2015-04-10 23:21:36

标签: python django admin

我想知道是否有办法覆盖django管理员视图中的字段。我希望在显示特定字段时在我的视图中显示特定信息。我已经阅读了有关how to customize the default behaviour of django's admin module的文档。例如,我正在查看includes/fieldset.html,但我无法找到block标记来覆盖它。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您正在寻找的可能是django管理员的ForeignKey功能的格式码。

  

ModelAdmin上的formfield_for_foreignkey方法允许您覆盖外键字段的默认表单字段。例如,要根据用户返回此外键字段的对象子集:

class MyModelAdmin(admin.ModelAdmin):
    def formfield_for_foreignkey(self, db_field, request, **kwargs):
        if db_field.name == "car":
            kwargs["queryset"] = Car.objects.filter(owner=request.user)
        return super(MyModelAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
  

这使用HttpRequest实例过滤Car外键字段,仅显示User实例拥有的汽车。

Read the doc on the django.contrib.admin for a better understanding

希望这有帮助。