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來更好看,如果這是你所關心的。 –