我是 django 的新手,我想知道在模板中包含视图(具有某些逻辑及其生成的 HTML)的最佳/推荐方法是什么。
我的具体例子如下:我有一个模型:
class City(models.Model):
name = models.CharField(max_length=200)
class Place(models.Model):
city = models.ForeignKey(City)
name = models.CharField(max_length=200)
state = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)
所以我需要一个视图来显示每个城市及其地点。每个地方都应该根据其状态以不同的方式呈现。每种不同的方式都非常不同,可能需要相当多的业务逻辑。
根据我使用其他框架的经验,我想象如下。使用城市模板调用将呈现位置的视图,该视图将具有所有必要的逻辑并选择使用哪个模板来呈现地点:示例伪代码:
城市.html
{% for place in places %}
{% include_view 'show_place' place %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
include_view 标签将调用视图,该视图将决定为给定位置使用哪个模板:
def show_place(request, place):
# Here I will probably use more logic to prepare the template.
template_name = "places/default.html"
if place.state == 1 :
template_name = 'places/active.html'
if place.state == 2 :
template_name = 'places/started.html'
if place.state == 3 :
template_name …Run Code Online (Sandbox Code Playgroud)