由于个人资料页面应该可供用户自己编辑,
我应该在视图中确定个人资料所有者,并且只为查看同一页面的其他用户提供不同的模板
或
我应该使用模板标签来确定当前用户是否是个人资料所有者?
我是网络应用程序开发和Django的新手。对不起,如果问题太广泛了。感谢。
答案 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 %}