代码之家  ›  专栏  ›  技术社区  ›  Stefan Stoychev

在三个模型/表中编写python/django视图以“连接”

  •  1
  • Stefan Stoychev  · 技术社区  · 15 年前

    刚刚开始我的python/django体验,我有一个问题:—)

    所以我有一个这样的model.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.中、3.低和任务中的数据表优先级将存储为ID(1、2或3)

    问题是如何编写一个显示我所有任务但优先级为的视图?例如:

    name: Task 1
    
    description: Description 1
    
    priority: **High**
    
    2 回复  |  直到 15 年前
        1
  •  2
  •   S.Lott    15 年前

    你的观点不需要太多。

    tasks = Tasks.objects.all()
    

    将此提供给模板。

    然后,您的模板可以执行如下操作。

    {% for t in tasks %}
        name: {{t.name}}
        description: {{t.description}}
        priority: **{{t.priority.name}}**
    {% endfor %}
    
        2
  •  0
  •   AlbertoPL    15 年前

    实现你所需要的有很多方法。最简单的方法之一就是将数字字典保存为字符串。这样:1->高,2->中,3->高。

    将此词典放在视图函数之外,这样您就可以从需要获得优先级的任何视图函数访问它。

    您也可以简单地编写一个开关来决定在模板中显示什么。