编写Python/Django视图以在三个模型/表之间“联接”
我刚开始接触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 个回答
0
有很多方法可以实现你想要的功能。其中一种最简单的方法就是建立一个数字和字符串的对应关系,比如:1对应“高”,2对应“中”,3对应“低”。
把这个对应关系放在你的视图函数外面,这样你就可以在任何需要获取优先级的视图函数中访问它。
你也可以简单地写一个选择语句,来决定在模板中显示什么内容。
2
你的视图不需要做太多事情。
tasks = Tasks.objects.all()
把这个提供给你的模板。
然后你的模板可以做类似下面的事情。
{% for t in tasks %}
name: {{t.name}}
description: {{t.description}}
priority: **{{t.priority.name}}**
{% endfor %}