Написание Python/Django View, чтобы «присоединиться» к трем моделям/таблицам
-
18-09-2019 - |
Вопрос
Просто начните свой опыт Python/Django, и у меня есть проблема :-)
Итак, у меня есть модель.py, как это:
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)
В таблице приоритетов я планирую хранить данные, такие как 1. Высоко, 2.Medium, 3. Low и в таблице задач приоритет будет храниться в виде идентификатора (1, 2 или 3)
И вопрос в том, как написать представление, которое отображает все мои задачи, но с приоритетом с именем? Например:
name: Task 1
description: Description 1
priority: **High**
Решение
Ваше мнение не должно многое делать.
tasks = Tasks.objects.all()
Предоставьте это своему шаблону.
Ваш шаблон может сделать что -то вроде следующего.
{% for t in tasks %}
name: {{t.name}}
description: {{t.description}}
priority: **{{t.priority.name}}**
{% endfor %}
Другие советы
Есть много способов выполнения того, что вам нужно. Одним из самых простых было бы сохранить словарь числа для строки. Как это: 1-> Высокий, 2-> Средний, 3-> Высокий.
Держите этот словарь за пределами ваших функций просмотра, чтобы вы могли получить к нему доступ к любой из ваших функций представления, которые должны получить приоритет.
Вы также можете просто написать переключатель, который определяет, что отображать в шаблоне.