mas*_*imp 3 django properties hidden-field modelform
我手动显示我的formset作为一个表,每个表单都循环.在每个表单的底部,我包括隐藏的字段,如:
{% for hidden in form.hidden_fields %}
{{ hidden }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
但问题是我还在我的表单中包含属性,如:
class AllocationForm(forms.ModelForm):
name = forms.CharField(widget=forms.TextInput(attrs={'size': '15'}))
def __init__(self, *args, **kwargs):
super(AllocationForm, self).__init__(*args, **kwargs)
if self.instance:
self.fields['total_budgeted'] = self.instance.total_budgeted()
self.fields['total_budgeted_account_percent'] = self.instance.total_budgeted_account_percent()
self.fields['actual_spent'] = self.instance.actual_spent()
self.fields['actual_spent_account_percent'] = self.instance.actual_spent_account_percent()
self.fields['total_budgeted_category_percent'] = self.instance.total_budgeted_category_percent()
self.fields['actual_spent_category_percent'] = self.instance.actual_spent_category_percent()
class Meta:
model = Allocation
exclude = {'created', 'modified', 'source_account'}
Run Code Online (Sandbox Code Playgroud)
而这在某种意义上起作用,我肯定会看到被调用的属性,但它们显示为什么都没有,所以这是另一个问题.
问题是当我在模板中保留隐藏字段时,我会得到错误,例如'int'对象没有属性'get_bound_field'等等,具体取决于属性/方法调用的返回类型.
我的问题是第一:有没有检查我可以做看场是一个属性模板,因此跳过了吗?它可能与我如何使用属性有关,因为实际上每个属性都没有显示(但我看到它回调),所以第二个是关于如何显示属性.
小智 5
好吧,我在问题的下一步,但我成功地生成了真正的表单字段.取代:
if self.instance:
self.fields['total_budgeted'] = self.instance.total_budgeted()
Run Code Online (Sandbox Code Playgroud)
你可以写:
if self.instance:
self.fields['total_budgeted'] = form.CharField(
initial=self.instance.total_budgeted(),
widget=HiddenInput()
)
Run Code Online (Sandbox Code Playgroud)
在此代码中,我将表单Field实例化为CharField,您可以使用所需的FormField,并通过选择隐藏的输入窗口小部件来隐藏它.
| 归档时间: |
|
| 查看次数: |
1085 次 |
| 最近记录: |