django-tables2:créer une zone de texte d'entrée
-
26-12-2019 - |
Question
Je voudrais créer un tableau avec plusieurs colonnes qui affichent des données existantes, et une colonne qui contient une zone de texte où je peux les données d'entrée.
Lorsque j'utilise mon "Animal" de modèle dans ma forms.py je vois des boîtes de saisie.Cependant, lorsque j'utilise le même modèle dans mon tables.py je vois un '--' (tirets) au lieu de l'entrée des boîtes.
Mon models.py:
class Animal(models.Model):
specie = models.CharField(max_length=20)
count = models.CharField(max_length=20)
mon forms.py:
class AnimalForm(forms.ModelForm):
class Meta:
model = Animal
mon tables.py:
class AnimalTable(tables.Table):
class Meta:
model = Animal
J'ai même essayé de spécifier manuellement une zone de texte, mais cela n'a pas aidé:
class AnimalTable(tables.Table):
count = forms.Textarea()
class Meta:
model = Animal
Comment créer une zone de saisie à l'intérieur d'un django-tables2 table?
La solution
J'ai trouvé une solution utilisable ici .
TEMPLATE = """
<input id="count" maxlength="100" name="count" type="text"/>
"""
class AnimalTable(tables.Table):
count = tables.TemplateColumn(TEMPLATE)
class Meta:
model = Animal
J'espère que cela se révélera utile pour les autres aussi.
Autres conseils
Je pense que vous avez mal compris le concept de la django-tables2
package.Son but est d'afficher des données tabulaires avec la possibilité de les trier et de certains autres mise en forme des choses.Afin de vous juste ne peux pas ajouter formfields en tables.Table
de la classe, car il attend les colonnes.
La liste des colonnes est disponible dans la documentation ici: http://django-tables2.readthedocs.org/en/latest/#built-in-columns