如何在 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 %}