如何在 Django 模型工厂中呈现不可编辑的字段
How can I render uneditable fields in django modelform factory
我想为我的查询集呈现模型表单,它只是一个 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)
实际上非常简单,您可以在其中添加 {{form}},只需添加 {{form.value}} 即可准确找到我想要的内容。所以如果你这样做了:
{% for x in formset %}
#in here would be
{{x.fieldname.value}} #simple
{% endfor %}
我想为我的查询集呈现模型表单,它只是一个 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)
实际上非常简单,您可以在其中添加 {{form}},只需添加 {{form.value}} 即可准确找到我想要的内容。所以如果你这样做了:
{% for x in formset %}
#in here would be
{{x.fieldname.value}} #simple
{% endfor %}