我目前正在开发一个Django应用程序,供多个加油站使用。我有一个站点模型,每个站点都有自己的对象。每个站点都有自己的帐户,只能修改自己站点的值
我正在制作一份通过Django admin提交的报告,但我想将“station”字段设置为他们的站点名称,这样他们就不能查看其他站点名称,也不能将选择更改为其他站点。在admin.py中,这就是我所拥有的(报告称为Shipping),所涉及的字段称为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'
如果你们知道如何解决这个问题,请告诉我。基本上,如果用户是manager,则将station值设置为“Texaco”,否则将其设置为“Exxon”,并且不允许更改该字段。谢谢
如果字段的值保存为db,则初始值将始终被覆盖
一种方法是动态呈现只读字段:
相关问题 更多 >
编程相关推荐