我想为我的查询集渲染模型表单,它只是一个model.objects.all(),但我不希望所有字段都可以编辑,但我仍然希望不可编辑的字段显示为普通文本。我怎样才能做到这一点?这是我到目前为止所理解的:
所以你根据doc使用modelformsetfactory的方式是这样的: 的观点:
from django.forms.models import modelformset_factory
from django.shortcuts import render_to_response
from myapp.models import Author
def manage_authors(request):
AuthorFormSet = modelformset_factory(Author, fields=('name', 'title'))
if request.method == "POST":
formset = AuthorFormSet(request.POST, request.FILES,
queryset=Author.objects.filter(name__startswith='O'))
if formset.is_valid():
formset.save()
else:
formset = AuthorFormSet(queryset=Author.objects.filter(name__startswith='O'))
return render_to_response("manage_authors.html", {
"formset": formset,
})
模板:
<form method="post" action="">
{{ formset.management_form }}
{% for form in formset %}
{{ form }}
{% endfor %}
</form>
而且我也知道你可以渲染单个字段,我知道如何渲染你不希望成为表格一部分但仍然显示的字段。
例如:
Name(not editable form field) Team(not editable) School(editable form field) Gender(editable) Phone#(not editable)
答案 0 :(得分:0)
实际上非常简单,您可以在其中添加{{form}},只需添加{{form.value}},这就是我正在寻找的内容。所以,如果你这样做了:
{% for x in formset %}
#in here would be
{{x.fieldname.value}} #simple
{% endfor %}