我正在尝试在表单中添加只读字段。
该模型Folder
已在管理站点中注册。这FolderAdminForm
定义自定义字段statistics
。没有statistcs
领域中的Folder
模型,我只想在表单上放置一些只读数据。该数据在模板中定义。
但只要用户没有编辑权限,我就会收到错误消息。如果用户只有查看权限,则会出现此错误:
AttributeError: Unable to lookup 'statistics' on Folder or FolderAdmin
这是我的代码:
class CustomWidget(forms.Textarea):
template_name = 'widget.html'
class FolderAdminForm(forms.ModelForm):
class Meta:
model = Folder
fields = ('field1', 'field2', 'field3',)
statistics = forms.Field(
widget=CustomWidget,
label='Estatísticas',
help_text='Estatísticas da pasta',
)
根据最后一部分这个答案 https://stackoverflow.com/a/4893172/9225671,你可以尝试覆盖表单__init__()
方法并分配字段initial
属性。
这可能看起来像:
def __init__(self, *args, **kwargs):
# only change attributes if an instance is passed
instance = kwargs.get('instance')
if instance:
self.base_fields['statistics'].initial = 'something'
super().__init__(*args, **kwargs)
这对你有用吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)