如何将登录用户链接到他的个人资料页面?
{% 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
答案 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)