簡體   English   中英

Django子父模板關系

[英]Django child-parent template relation

假設我有

  • 我從views.profile渲染的mainprofile.html和
  • 我從views.followers呈現的followers.html

當我單擊關注者按鈕時,它將調用views.followers並渲染關注者並將其正確插入到主配置文件中。

我想做的事:

當我這樣做時,我會丟失父頁面(mainprofile)上的所有配置文件信息,例如userinfo.username。如何解決此問題?

mainprofile.html:

{% extends 'layout/master.html' %}
    {% load sharedtags %}

    {% block content %}

        {{ userinfo.username }}

        ...some profile information...

        followers_button

        {% block right_side_main_layout %}

            ... some info ...

        {% endblock right_side_main%}

    {% endblock content%}

followers.html:

{% extends 'mainprofile.html' %}
{% block right_side_main_layout %}

    ... list of followers ...

{% endblock right_side_main_layout %}

views.py:

def profile(request,username):

    userdetail  = AuthUser.objects.filter(username=username) 

    template='profil/mainprofile.html'
    context = RequestContext(request, {'userinfo': userdetail })
    return render_to_response(template, context)

def followers(request, username):

    followers  = Followers.objects.filter(username=username)  

    template = 'profil/em-profile-follower.html'
    context = RequestContext(request,{'followers': followers})
    return direct_to_template(template,context)

謝謝。

您還必須將AuthUser實例添加到followers視圖。

def followers(request, username):

    followers  = Followers.objects.filter(username=username)  
    userdetail  = AuthUser.objects.filter(username=username) 

    template = 'profil/em-profile-follower.html'
    context = RequestContext(request,{'followers': followers, 'userinfo': userdetail})
    return direct_to_template(template,context)

現在,您還將在此模板中擁有userinfo(並查看)

我不確定您的模型看起來如何。 但我假設AuthUser具有ForeignKeyField(Follower)。 如果為該字段指定一個related_name (例如'followers'),則可以執行以下操作:

userdetail = AuthUser.objects.filter(username=username)

然后在模板中,您可以通過以下方式訪問您的關注者: userdetail.followers

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM