Метод не разрешен (POST): /property/like/
При отправке моей формы постоянно возникает ошибка Method Not Allowed (POST): /property/like/
<form action="{% url 'property:like-post' %}" method="POST">
{% csrf_token %}
<input type="hidden" name="property_id" value="{{obj.id}}">
{% if request.user not in obj.liked.all %}
<button class="btn love-badge btn-raised btn-wave btn-icon btn-rounded mb-2 white" type="submit"> <i class="mdi mdi-heart-outline"></i></button>
{% else %}
<button class="btn love-badge btn-raised btn-wave btn-icon btn-rounded mb-2 teal" type="submit"> <i class="mdi mdi-heart-outline"></i></button>
{% endif %}
</form>
view.py
def like_property(request):
user = request.user
if request.method == 'POST':
property_id = request.POST.get('property_id')
property_obj = Property.objects.get(id=property_id)
if user in property_obj.liked.all():
property_obj.liked.remove(user)
else:
property_obj.liked.add(user)
like, created = Like.objects.get_or_create(user=user, property_id=property_id)
if not created:
if like.value == 'Like':
like.value == 'Unlike'
else:
like.value = 'Like'
like.save()
return redirect('property:list')
urls.py
app_name = 'property'
urlpatterns = [
path('like/', views.like_property, name='like-post'),
]
Любое понимание того, что я делаю неправильно, будет оценено по достоинству.
Откуда берется property_id? В url ничего не захвачено, т.е. у вас нет <int:property_id> в urls.py?
urlpatterns = [
path('like/<int:property_id>', views.like_property, name='like-post'),
]
Затем в представлениях:
def like_property(request, property_id):
...