tabelas Django2:crie uma caixa de texto de entrada
-
26-12-2019 - |
Pergunta
Gostaria de criar uma tabela com várias colunas que exibam os dados existentes e uma coluna que contenha uma caixa de texto onde eu possa inserir dados.
Quando uso meu modelo "Animal" em meu Forms.py, vejo caixas de entrada.No entanto, quando uso o mesmo modelo em meu Tables.py, vejo um '--' (traços) em vez das caixas de entrada.
Meus modelos.py:
class Animal(models.Model):
specie = models.CharField(max_length=20)
count = models.CharField(max_length=20)
meus formulários.py:
class AnimalForm(forms.ModelForm):
class Meta:
model = Animal
minhas tabelas.py:
class AnimalTable(tables.Table):
class Meta:
model = Animal
Até tentei especificar manualmente uma caixa de texto, mas não adiantou:
class AnimalTable(tables.Table):
count = forms.Textarea()
class Meta:
model = Animal
Como alguém criaria uma caixa de entrada dentro de uma tabela Django-tables2?
Solução
Encontrei uma solução utilizável aqui.
TEMPLATE = """
<input id="count" maxlength="100" name="count" type="text"/>
"""
class AnimalTable(tables.Table):
count = tables.TemplateColumn(TEMPLATE)
class Meta:
model = Animal
Espero que isso seja útil para outros também.
Outras dicas
Acho que você pode ter entendido mal o conceito de django-tables2
pacote.Seu objetivo é exibir dados tabulares com a capacidade de classificá-los e outras coisas de formatação.Então você simplesmente não pode adicionar campos de formulário em tables.Table
classe, porque espera colunas.
A lista de colunas suportadas está disponível na documentação aqui: http://django-tables2.readthedocs.org/en/latest/#built-in-columns