【发布时间】:2011-05-03 01:39:03
【问题描述】:
我最近开始在 Django 中编写代码,所以我的问题可能有点奇怪。
最近我需要将模型中的 CharField 字段渲染为 html 中的简单静态文本,但我发现在这种情况下它似乎并不像我想象的那么简单,或者我做错了什么......
我有这个模型:
class Tag(models.Model):
CATEGORIES = (
(0, 'category0'),
(1, 'category1'),
(2, 'category2'),
(3, 'category3'),
(4, 'category4'),
(5, 'category5'))
name = models.CharField(max_length=20)
description = models.CharField(max_length=100, blank=True)
category = models.IntegerField(default=0)
user = models.ForeignKey(User)
它的表单类是:
class TagForm(ModelForm):
category = ChoiceField(choices=Tag.CATEGORIES)
class Meta:
model = Tag
在视图中,我在单个表单中创建包含多个 Tag 对象的表单集,并为其中的每个 Tag 对象提供 TagForm 类:
TagsFormSet = modelformset_factory(Tag,exclude=('user'),form=TagForm,extra=0)
form = TagsFormSet(queryset=all_tags)
在我的模板中:
{{ form.management_form }}
{% for tagform in form.forms %}
{{ tagform }}
<hr>
{% endfor %}
但是这种方式在 html 中,模型的“名称”和“描述”字段总是呈现为输入文本字段。我想把它们放在 html 中,就像普通的静态文本一样,没有任何东西(在那个 html 中我只需要显示它们)。这种情况有什么快速的解决方案吗?
【问题讨论】:
标签: django django-forms django-templates