Нет ошибки обратного совпадения. не знаю, что вызывает

У меня возникли проблемы с отображением представления для редактирования профиля. Я не уверен, чем это вызвано. Это мой 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+)/$']

Это связано с тем, что вы не передали pk по URL-адресу, опубликуйте свое представление, которое разрывает, что html - это код

Pankaj Sharma 26.10.2018 07:48

<a class="dropdown-item" href="{% url'edit-user' pk=userprofile.id %}"> Profile </a>. Если я сделаю так, это все равно ошибка noreversematch, но теперь она дает мне Реверс для 'edit-user' с ключевыми аргументами '{' pk ':' '}' не найден. Как правильно сдать ПК?

newbie 26.10.2018 07:58

вопрос должен быть ясным, какой контекст вы получаете в своем html, поэтому опубликуйте представление, которое разрывает этот html

Pankaj Sharma 26.10.2018 08:07
1
3
27
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема в этой строке,

<a class="dropdown-item" href="{% url 'edit-user' ## missing ## %}"> Profile </a>

Добавьте user.pk или userprofile.user.pk в зависимости от того, где URL находится в вашем шаблоне.

<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>

Выберите в соответствии с тем, где в вашем html присутствует тег <a>.

Большой. Вы можете принять ответ, чтобы другие не щелкали по этой ссылке вопроса без необходимости.

Bidhan Majhi 26.10.2018 08:09

Другие вопросы по теме