将用户链接到他的个人资料页面

时间:2016-03-20 16:59:56

标签: django django-templates django-views

如何将登录用户链接到他的个人资料页面?

{% if user.is_authenticated %}

<a href= "{% url 'blog:profile' userProfile.user %}">Profile</a>

以下是相关部分:

views.py

@login_required
def profile(request, profile_id):
    if profile_id == "0":
        if request.user.is_authenticated:
            userProfile = UserProfile.objects.get(pk=profile_id)
    else:
        userProfile = UserProfile.objects.get(pk=profile_id)

    return render_to_response('blog/profile.html', {'userProfile':userProfile}, RequestContext(request))

urls.py

url(r'^profile/(?P<profile_id>\d+)/$', views.profile),

models.py

class UserProfile(models.Model):
    user = models.OneToOneField(User)
    bio = models.TextField(max_length=500, blank = True, default=('keine Angabe'), null=True)
    image = models.FileField(null=True, blank=True)

    def __unicode__(self):
       return self.user.username

1 个答案:

答案 0 :(得分:2)

在您的模板中,您尝试将url标记与已命名的网址一起使用,即使您未在name url函数中将urlpatterns关键字参数传递给name函数

在你的urls函数中传递url(r'^profile/(?P<profile_id>\d+)/$', views.profile, name='profile'), 参数,如下所示:

{% if user.is_authenticated %}

    <a href= "{% url 'blog:profile' user.userprofile.id %}">Profile</a>

确保将应用程序命名为&#39; blog&#39;在您的根URL配置

在您的模板中,按请求上下文的用户对象访问当前用户的个人资料ID。像这样:

QProcess.startDetached("/home/pi/pywork/pyqt/of2.py")
sys.exit(0)