小编MAB*_*MAB的帖子

Django:如何在模板中包含视图

我是 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)

django django-templates django-views python-2.7

2
推荐指数
1
解决办法
8477
查看次数