gpt4 book ai didi

django - 如何覆盖模型 __str__ 方法,以便您在管理面板中有不同的演示文稿

转载 作者:行者123 更新时间:2023-12-04 02:06:24 24 4
gpt4 key购买 nike

覆盖模型的 __str__ 方法的简洁方法是什么,以便管理员和 super 管理员在管理面板中以不同的方式查看它。

在我的模型类中,我想检查用户是否是 is_superuser,这样我就可以在 __str__ 方法中显示不同的东西。

重点是我的 super 管理员可以看到属于每个人的所有对象,但普通管理员只能看到他的对象,所以如果我写:

def __str__(self):

   return "Object: %s , created by: %s"%(self.title,self.created_by)

我的 super 管理员将能够在面板中看到谁是对象的创建者,这很好。但是我的普通管理员只会看到他的对象,而不是需要的消息说他是创造者。这就是为什么我需要在 __str__ 方法中为普通管理员提供不同的返回值。

最佳答案

您可以在管理中指定要在列表中显示的字段,而不是在 __str__ 方法中执行此操作。

class MyModelAdmin(admin.ModelAdmin):
def get_list_display(self, request):
if request.user.is_superuser:
return ('title' , 'created_by')
else:
return ('title',)
admin.site.register(MyModel, MyModelAdmin)

然后更新您的 __str__ 方法以仅返回标题。

关于django - 如何覆盖模型 __str__ 方法,以便您在管理面板中有不同的演示文稿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43118080/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com