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?

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top