两个单独的模板配置文件页面供用户自己和其他用户使用?

时间:2015-08-07 13:39:42

标签: django django-templates django-views

由于个人资料页面应该可供用户自己编辑,

我应该在视图中确定个人资料所有者,并且只为查看同一页面的其他用户提供不同的模板

我应该使用模板标签来确定当前用户是否是个人资料所有者?

我是网络应用程序开发和Django的新手。对不起,如果问题太广泛了。感谢。

2 个答案:

答案 0 :(得分:0)

您可以根据用户ID显示自己的用户个人资料数据,因此单个个人资料模板就足够了。 例如:

def profile(request,userid)
    .......
    return render_to_response('profile.html',{..context..})

答案 1 :(得分:0)

您可以使用单个模板检查用户是否在模板中进行了身份验证,并为登录用户显示必要的代码。

要检查用户是否在模板中进行了身份验证,请使用user.is_authenticated。但是,请记住,必须在当前user的设置中启用auth context processor才能出现在模板上下文中。

您可以在网址中传递user_id kwarg来访问该用户的个人资料页面。您可以将您的网址定义为:

url(r'^user/profile/(?P<user_id>\w+)/$', ProfilePage.as_view(), name='profile_page'),

然后在views中,您可以在上下文中传递requested_profile_id

Class ProfilePage(..):

    def get_context_data(self):
        context = super(ProfilePage, self).get_context_data()
        # pass user id for which profile page was requested
        context['requested_profile_id'] = self.kwargs.get('user_id') 
        return context 

然后在模板中,检查当前用户的id是否与requested_profile_id相同。如果相同,则可以显示要编辑配置文件的部分。你可以这样做:

<强> my_template.html

...
<!-- your normal code here -->
..
{% if user.is_authenticated and user.id==requested_profile_id %}
    ...
    <!-- your code for current user profile edit page here -->
    ..
{% endif %}