Je souhaite afficher une table contenant un ensemble d'objets de modèle.Tableau en formes croustillantes (django) en utilisant FormHelper
Ma classe de modèle:
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')
ma forme Classe:
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)
Mon modèle de base base.html:
<!DOCTYPE html>
<html>
<body>
{% block list %}
{% endblock %}
</body>
</html>
mon list_damagekinds.html:
{% extends "./base.html" %}
{% load crispy_forms_tags %}
{% block list %}
<form action="" method="post">
{% csrf_token %}
{{ damagekind_form }}
</form>
{% endblock %}
et mon views.py:
def list_damagekinds(request):
damagekinds = DamageKind.objects.all()
return render(
request,
'damage/list_damagekinds.html',
{'damagekind_form': DamageKindList(damagekinds=damagekinds), }
)
donc ma question est de savoir comment je peux faire un tableau contenant tous les noms des damagekinds de ne pas beeing modifiable, donc juste montrer ceux-ci. Et avec en utilisant le FormHelper crispy_forms et ne pas le coder dans le modèle.
Merci d'avance.
mais qui ressemble à pas la plus belle façon, ne devrait pas être faite que par la forme DamageKindList FormHelper /? – nicksheen
Comme ces valeurs ne sont pas destinées à faire partie d'une commande http (GET, POST, PUT, DELETE), vous pouvez vouloir effectuer, où est le point de le rendre sous forme de formulaire? Ceci est juste un exemple simple - vous pouvez le redessiner et ajouter des classes bootrap ou d'autres css pour un look plus agréable si c'est ce qui vous préoccupe. –