【发布时间】:2021-03-06 14:38:48
【问题描述】:
我目前正在开发一个供多个加油站使用的 Django 应用程序。我有一个车站模型,每个车站都有自己的对象。每个站都有自己的帐户,并且只能修改自己站的值。
我正在通过 Django 管理员提交报告,但我想将“站”字段设置为他们的站名,他们无法查看其他站名,也无法将选择更改为其他站。在 admin.py 中,这就是我所拥有的(报告称为 Shipment),有问题的字段称为 station。
class ShipmentAdmin(admin.ModelAdmin):
#readonly_fields = ['station'] <- I thought this would work but it removes the value I set if user = manager
def get_form(self, request, obj=None, **kwargs):
form = super(ShipmentAdmin, self).get_form(request, obj, **kwargs)
if str(request.user) == 'manager':
form.base_fields['station'].initial = 'Texaco'
else:
form.base_fields['station'].initial = 'Exxon'
如果你们知道如何解决这个问题,请告诉我。基本上,如果用户是经理,则将站值设置为“Texaco”,否则将其设置为“Exxon”,并且不允许更改该字段。谢谢!
【问题讨论】:
-
你能把这个逻辑移到 ShipmentAdmin init 方法吗?
-
@user1464664 我不确定该怎么做?
标签: python django django-admin admin