在Django的管理员中,您可以通过readonly选项将实例方法调用添加到编辑页面。
我可以使用ModelForm做类似的事情,并显示实例方法调用的结果吗?最好使其成为表格visible_fields列表的一部分。
我的模板很通用,所以它们循环遍历表单可见字段列表,我宁愿不改变这些。
答案 0 :(得分:1)
Oke,我的解决方案会非常hacky,但你可能会做这样的事情:
class YourModelForm(forms.ModelForm):
class Meta:
model = YourModel
fields = []
def __init__(self, *args, *kwargs):
super(YourModelForm, self).__init__(*args, **kwargs)
# You can also user insert, to add on a certain position
self.visible_fields.append(self.instance.method())
现在问题可能是你附加了一个值,因为我不知道你如何渲染你的字段。但你可以通过附加一个类似Field
的对象来解决这个问题,它会在你调用的必要方法上返回转义(并保存)的html。
其他hacky选项,添加一个附加字段,使用窗口小部件将其属性设置为disabled=disabled
,并且由于已禁用input
值并未与表单一起提交,请将其设置为{{1 }}