Написание Python/Django View, чтобы «присоединиться» к трем моделям/таблицам

StackOverflow https://stackoverflow.com/questions/1300657

  •  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-> Высокий.

Держите этот словарь за пределами ваших функций просмотра, чтобы вы могли получить к нему доступ к любой из ваших функций представления, которые должны получить приоритет.

Вы также можете просто написать переключатель, который определяет, что отображать в шаблоне.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top