没有反向匹配错误 不知道是什么原因造成的
No Reverse Match error No idea what is causing
我在呈现用于编辑配置文件的视图时遇到了一些问题。我不确定是什么原因造成的。
这是我的 models.py
class UserProfile(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL,on_delete=models.CASCADE)
address = models.CharField(max_length=100)
def __str_(self):
return self.user.username
@receiver(post_save, sender=settings.AUTH_USER_MODEL)
def create_user_profile(sender, instance, created, **kwargs):
if created:
UserProfile.objects.create(user=instance)
@receiver(post_save, sender=settings.AUTH_USER_MODEL)
def save_user_profile(sender, instance, **kwargs):
instance.userprofile.save()
我的views.py
class ProfileEditView(generic.UpdateView):
model = UserProfile
form_class = UserProfileForm
template_name = 'user_profile.html'
def get_object(self,*args, **kwargs):
user = get_object_or_404(settings.AUTH_MODEL_USER, pk=self.kwargs['pk'])
return user.userprofile
def get_sucess_url(self, *args, **kwargs):
return reverse('edit-user')
我的urls.py是
url(r'^profile/(?P<pk>\d+)/$',views.ProfileEditView.as_view(),name='edit-user')
在我的 html 代码中我写了
<a class="dropdown-item" href="{% url 'edit-user' %}"> Profile </a>
除了带有错误消息的 NoReverseMatch 运行时错误外,它没有给出任何错误
Reverse for 'edit-user' with no arguments not found. 1 pattern(s) tried: ['users/profile/(?P\d+)/$']
问题出在这一行,
<a class="dropdown-item" href="{% url 'edit-user' ## missing ## %}"> Profile </a>
根据 url 在模板中的位置添加 user.pk
或 userprofile.user.pk
。
<a class="dropdown-item" href="{% url 'edit-user' userprofile.user.pk %}"> Profile </a>
或
<a class="dropdown-item" href="{% url 'edit-user' user.pk %}"> Profile </a>
我在呈现用于编辑配置文件的视图时遇到了一些问题。我不确定是什么原因造成的。 这是我的 models.py
class UserProfile(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL,on_delete=models.CASCADE)
address = models.CharField(max_length=100)
def __str_(self):
return self.user.username
@receiver(post_save, sender=settings.AUTH_USER_MODEL)
def create_user_profile(sender, instance, created, **kwargs):
if created:
UserProfile.objects.create(user=instance)
@receiver(post_save, sender=settings.AUTH_USER_MODEL)
def save_user_profile(sender, instance, **kwargs):
instance.userprofile.save()
我的views.py
class ProfileEditView(generic.UpdateView):
model = UserProfile
form_class = UserProfileForm
template_name = 'user_profile.html'
def get_object(self,*args, **kwargs):
user = get_object_or_404(settings.AUTH_MODEL_USER, pk=self.kwargs['pk'])
return user.userprofile
def get_sucess_url(self, *args, **kwargs):
return reverse('edit-user')
我的urls.py是
url(r'^profile/(?P<pk>\d+)/$',views.ProfileEditView.as_view(),name='edit-user')
在我的 html 代码中我写了
<a class="dropdown-item" href="{% url 'edit-user' %}"> Profile </a>
除了带有错误消息的 NoReverseMatch 运行时错误外,它没有给出任何错误
Reverse for 'edit-user' with no arguments not found. 1 pattern(s) tried: ['users/profile/(?P\d+)/$']
问题出在这一行,
<a class="dropdown-item" href="{% url 'edit-user' ## missing ## %}"> Profile </a>
根据 url 在模板中的位置添加 user.pk
或 userprofile.user.pk
。
<a class="dropdown-item" href="{% url 'edit-user' userprofile.user.pk %}"> Profile </a>
或
<a class="dropdown-item" href="{% url 'edit-user' user.pk %}"> Profile </a>