Pregunta

Solo comienza mi experiencia Python/Django y tengo un problema :-)

Entonces tengo un modelo.py como este:

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)

En la Tabla de prioridad, planeo almacenar datos como 1.High, 2. Medium, 3.Low y en tareas La prioridad de la tabla se almacenará como ID (1, 2 o 3)

¿Y la pregunta es cómo escribir una vista que muestre todas mis tareas pero con prioridad nombrada? Por ejemplo:

name: Task 1

description: Description 1

priority: **High**
¿Fue útil?

Solución

Tu punto de vista no tiene que hacer mucho.

tasks = Tasks.objects.all()

Proporcione esto a su plantilla.

Su plantilla puede hacer algo como lo siguiente.

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

Otros consejos

Hay muchas formas de lograr lo que necesita. Uno de los más fáciles sería mantener un diccionario de número para la cadena. Así: 1-> alto, 2-> medio, 3-> alto.

Mantenga este diccionario fuera de sus funciones de vista para que pueda acceder a cualquiera de sus funciones de vista que necesiten obtener la prioridad.

También puede simplemente escribir un interruptor que determine qué mostrar en la plantilla.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top