Asi*_*sif 6 python django django-forms
我正在使用modelformset工厂从模型字段生成formset.在这里,我想只将queryset对象作为readonly和其他(额外的形式)作为非readonly字段
我怎样才能实现这一目标?
AuthotFormSet = modelformset_factory(Author, extra=2,)
formset = AuthorFormSet(queryset=Author.objects.all())
Run Code Online (Sandbox Code Playgroud)
在上面的formset中,我希望将所有queryset对象显示为readonly,并将剩余的额外形式显示为非readonly字段.我怎么能做到这一点?
如果我使用,
for form in formset.forms:
form.fields['weight'].widget.attrs['readonly'] = True
Run Code Online (Sandbox Code Playgroud)
这会将所有表单(包括额外的)字段转换为readonly,我不想要.而且我还使用jquery插件将表单动态添加到formset
我建议指定一个用于模型的表单,在该表单中,您可以设置您想要只读的任何属性.
#forms.py
class AuthorForm(forms.ModelForm):
class Meta:
model = Author
def __init__(self, *args, **kwargs):
super(AuthorForm, self).__init__(*args, **kwargs)
if self.instance.id:
self.fields['weight'].widget.attrs['readonly'] = True
#views.py
AuthorFormSet = modelformset_factory(Author, extra=2, form=AuthorForm)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5292 次 |
| 最近记录: |