Django добавляет /None к url

я создаю логику для пользователей, чтобы сохранить посты как любимые, я закончил создание, но когда я перехожу по заголовку к url http://127.0.0.1:8000/design/ui-ux/learn-ui-the-easy-way/save/ он автоматически обновляет себя и теперь добавляет None к url как это http://127.0.0.1:8000/design/ui-ux/learn-ui-the-easy-way/save/None и это не то, что я ожидаю.

views.py

@login_required
def designtut_favourite(request, designcat_slug, design_slug):
    user = request.user
    designtut = DesignTutorial.objects.get(slug=design_slug)

    profile = Profile.objects.get(user=user)

    if profile.favourite_design.filter(slug=design_slug).exists():
        profile.favourite_design.remove(designtut)
    else:
        profile.favourite_design.add(designtut)

    return HttpResponseRedirect(request.META.get('HTTP_REFERER'))

models.py

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    favourite_design = models.ManyToManyField(DesignTutorial)

urls.py

path('design/<designcat_slug>/<design_slug>/save/', views.designtut_favourite, name="design-save"),

template.html

<a href="{% url 'base:design-save' designtut.designcat.slug designtut.slug %}"><i class="fas fa-heart" "></i><span>Save</span></a>

views.py

from urllib.parse import urlparse
# import ALLOWED_HOSTS from your settings.py here!


@login_required
def designtut_favourite(request, designcat_slug, design_slug):
    user = request.user
    designtut = DesignTutorial.objects.get(slug=design_slug)

    profile = Profile.objects.get(user=user)

    if profile.favourite_design.filter(slug=design_slug).exists():
        profile.favourite_design.remove(designtut)
    else:
        profile.favourite_design.add(designtut)

    net_location = urlparse(request.META.get('HTTP_REFERER')).netloc
    for allowed_host in ALLOWED_HOSTS:
        if net_location in allowed_host:
            return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
    return HttpResponseRedirect("/")

Важно отметить, что слепое перенаправление на сайт, указанный в запросе, представляет потенциальный риск безопасности. Поэтому я попробовал включить проверку с помощью ALLOWED_HOSTS. Это должно перенаправлять на целевую страницу, если в ней есть значение None, но также и в том случае, если кого-то заманивают на фишинговый сайт.

Вернуться на верх