0
我想显示一个包含一组模型对象的表格。使用FormHelper的香脆表格(django)表格
我的模型类:
from django.dbfrom django.db import models
from django.utils.translation import ugettext_lazy as _
class DamageKind(models.Model):
name = models.CharField(_('damage kind'), max_length=64)
regions = models.ManyToManyField(Region)
def __str__(self):
return self.name
class Meta:
verbose_name = _('damage kind')
verbose_name_plural = _('damage kinds')
我的表单类:
from django import forms
from crispy_forms.helper import FormHelper
from .models import DamageKind
class DamageKindList(forms.Form):
def __init__(self, *args, **kwargs):
self.damagekinds = kwargs.pop('damagekinds', [])
self.helper = FormHelper()
self.helper.form_method = 'post'
super().__init__(*args, **kwargs)
我的基本模板base.html文件:
<!DOCTYPE html>
<html>
<body>
{% block list %}
{% endblock %}
</body>
</html>
我list_damagekinds.html:
{% extends "./base.html" %}
{% load crispy_forms_tags %}
{% block list %}
<form action="" method="post">
{% csrf_token %}
{{ damagekind_form }}
</form>
{% endblock %}
,我的views.py:
def list_damagekinds(request):
damagekinds = DamageKind.objects.all()
return render(
request,
'damage/list_damagekinds.html',
{'damagekind_form': DamageKindList(damagekinds=damagekinds), }
)
所以我的问题是如何使通过不beeing编辑包含damagekinds的所有名称表,所以才显示这些。和与使用crispy_forms FormHelper,而不是将其编码到模板中。
在此先感谢。
但是这看起来不象的最好方式,不应该由表单助手/ DamageKindList形式进行? – nicksheen
由于这个值不是任何http命令(GET,POST,PUT,DELETE)的一部分,你可能想要执行,它将表现为表单的地方在哪里?这只是一个简单的例子 - 你可以重新设计它,并添加引导类或其他CSS来更好看,如果这是你所关心的。 –