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を使用し、それをテンプレートにコード化しません。
ありがとうございます。
それは素敵な方法のように見えない、それはFormHelperの/ DamageKindList-形でなされるべきではないのですか? – nicksheen
この値は、httpコマンド(GET、POST、PUT、DELETE)の一部ではないので、実行したいかもしれませんが、フォームとしてレンダリングする際のポイントはどこですか?これはほんの単純な例です - あなたが気になるものなら、それを再設計し、bootrap-classesや他のCSSを追加してより良い外観にすることができます。 –