Django 1.6 - showProfile() 接收到意外的关键字参数'id
我正在尝试显示用户的个人资料,但总是遇到这个错误。我怀疑在网址或视图上可能有问题。我试着参考了这个在Django中获取用户个人资料的内容。
这是我的models.py文件
class DoctorSeeker(models.Model):
name = models.CharField(max_length=30)
email = models.EmailField()
user = models.OneToOneField(User, unique=True)
def __unicode__(self):
return u"%s %s" % (self.name, self.email)
def create_seeker_profile(sender, instance, created, **kwargs):
if created:
DoctorSeeker.objects.get_or_create(user=instance)
post_save.connect(create_seeker_profile, sender=User)
这是views.py文件
def showProfile(request):
profile = request.user.get_profile()
return render(request,'/profile.html')
这是urls.py文件
url(r'^profile/(?P<id>\d+)/$', views.showProfile, name='showProfile'),
这是我在头部尝试访问它的地方
<li><a href="/profile/{{user.id}}">My Profile</a></li>
1 个回答
1
在你的网址中,你定义了一个 id
,并把它传给了处理显示的函数 showProfile
,但是这个函数的写法有问题。
你需要修改这个处理函数,在请求后面加上 id
这个参数:
def showProfile(request, id):
profile = request.user.get_profile()
return render(request,'/profile.html')