django 将一个模板包含到另一个模板中

Posted

技术标签:

【中文标题】django 将一个模板包含到另一个模板中【英文标题】:django include a template into another template 【发布时间】:2018-02-02 06:43:09 【问题描述】:

我正在尝试将一个模板包含到另一个模板中,但我现在遇到的问题是嵌入的模板不显示在我尝试嵌入的新模板中呈现的内容。

个人资料应用程序中的detail.html

% include "list.html" with instance=user.posts_created.all %

我在模板文件夹中有模板。可以看到模板,但内容未显示在 detail.html 中

将根据要求提供其他代码,谢谢

帖子应用中的views.py

def axle(request , tag_slug=None):
    results = Post.objects.all().filter(draft=False)#.filter(publish__lte=timezone.now())
    #results = results.filter(user=request.user)
    tag = None
    if tag_slug:
        tag = get_object_or_404(Tag, slug=tag_slug)
        results = results.filter(tags__in=[tag])
    que = request.GET.get("q")
    if que:
        results =results.filter(
            Q(title__icontains=que)|
            Q(content__icontains=que)).distinct()
    paginator = Paginator(results, 4) # Show 25 contacts per page
    pages ="page"
    page = request.GET.get('page')
    try:
        query = paginator.page(page)
    except PageNotAnInteger:
        query = paginator.page(1)
    except EmptyPage:
        query = paginator.page(paginator.num_pages)

    context = 
        "objects": query,
        "pages": pages
    
    template = 'list.html'
    return render(request,template,context)

【问题讨论】:

你是不是只有一个list.html,能不能给个出处 是的,我只有一个 你能展示一下吗? 【参考方案1】:

您的view 中应该有这样的内容:

def post(request):
    post_list = posts_created.objects.all() # or something which you want to do.
    context = 
    'post_list': post_list,
    
    return render(request, 'detail.html', context)

template:

% include "app_name/list.html" with objects=post_list %

【讨论】:

list.html 在另一个应用中 确保list.html可以访问,你可能需要使用app_name/list.html,检查你的模板结构,你就会知道如何在另一个应用程序中使用它。 @King 添加你的list.html,或者确定你传入list.html 的变量,确保在这里使用相同的变量。就像如果您的list.html 中有% for object in object_list %,请使用% include "app_name/list.html" with object_list=post_list %。相应地使用您在list.html 中使用的内容,在detail.html 中使用相同的内容。 list.html 可访问 您在list.html 中从其对应的view 访问什么key。如果是instance,则可以,否则在detail.html 中使用它与您在list.html 中传递的相同

以上是关于django 将一个模板包含到另一个模板中的主要内容,如果未能解决你的问题,请参考以下文章

Django 2.0:将数据从视图发送到包含在另一个模板中的模板(2 个不同的应用程序)

Django:不能将变量传递给包含的模板?

始终将用户包含在 django 模板上下文中

用 jquery 附加一个 django 模板包含

Django包含找不到模板

django包含带有循环变量的模板