【发布时间】:2015-04-09 02:55:12
【问题描述】:
我想为我的查询集呈现模型表单,它只是一个 model.objects.all(),但是我不希望所有字段都是可编辑的,但我仍然希望不可编辑的字段显示为普通文本。我怎样才能做到这一点?这是我目前所理解的:
所以你根据文档使用 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)
【问题讨论】:
标签: django django-forms django-templates