Pergunta

Basta começar minha experiência em Python/Django e tenho um problema :-)

Então eu tenho um modelo.py assim:

from django.db import models

class Priority(models.Model):
    name = models.CharField(max_length=100)

class Projects(models.Model):
    name = models.CharField(max_length=30)
    description = models.CharField(max_length=150)
    priority = models.ForeignKey(Priority)

class Tasks(models.Model):
    name = models.CharField(max_length=30)
    description = models.CharField(max_length=40)
    priority = models.ForeignKey(Priority)

Na tabela prioritária, planejo armazenar dados como 1.High, 2.Medium, 3.Low e na tabela de tarefas A prioridade será armazenada como ID (1, 2 ou 3)

E a questão é como escrever uma visão que exibe todas as minhas tarefas, mas com prioridade nomeada? Por exemplo:

name: Task 1

description: Description 1

priority: **High**
Foi útil?

Solução

Sua visão não precisa fazer muito.

tasks = Tasks.objects.all()

Forneça isso ao seu modelo.

Seu modelo pode fazer algo como o seguinte.

{% for t in tasks %}
    name: {{t.name}}
    description: {{t.description}}
    priority: **{{t.priority.name}}**
{% endfor %}

Outras dicas

Existem muitas maneiras de realizar o que você precisa. Um dos mais fáceis seria manter um dicionário de número para cordas. Assim: 1-> Alto, 2-> Médio, 3-> Alto.

Mantenha este dicionário fora de suas funções de visualização, para que você possa acessá -lo em qualquer uma das suas funções de visualização que precisam obter a prioridade.

Você também pode simplesmente escrever um switch que determina o que exibir no modelo.

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