Sin error de coincidencia inversa: no puedo encontrar el slug o la clave principal que estoy pasando
Estoy tratando de agregar enlaces a la URL y vista change_friend, pero estoy obteniendo una coincidencia inversa porque aparentemente no estoy pasando los argumentos correctos.
here is friends.urls.py
from . import views
from django.conf.urls import url
app_name = 'friends'
urlpatterns = [
# we have 1 url for both adding and losing a friend
url('connect/<slug:operation>/<int:pk>/', views.change_friends, name='change_friends'),
# url(r'^connect/(?P<operation>.+)/(?P<pk>\d+)/ aquí está el friends.views.py
from django.shortcuts import render, redirect
from friends.models import Friend
from django.contrib.auth.models import User
def change_friends(request, operation, pk):
friend = User.objects.get(pk=pk)
if operation == 'add':
Friend.make_friend(request.user, friend)
elif operation == 'lose':
Friend.lose_friend(request.user, friend)
return redirect('groups:index')
aquí está la plantilla en la que la llamo (profile.html):
{% if user in friends %}
<a href="{% url 'friends:change_friends' 'remove' user_profile.id %}"><button type="button" name="btn btn-warning">UnFriend</button></a>
{% else %}
<a href="{% url 'friends:change_friends' 'add' user_profile.id %}"><button type="button" name="btn btn-success">Befriend</button></a>
{% endif %}
para mí, parece que estoy pasando los argumentos correctos. este es el error que estoy recibiendo:
NoReverseMatch at /accounts/profile/4
Reverse for 'change_friends' with arguments '('remove', 4)' not found. 1 pattern(s) tried: ['friends\\/connect/<slug:operation>/<int:pk>/']
cualquier ayuda sería muy apreciada
, views.change_friends, name='change_friends')
]
aquí está el friends.views.py
from django.shortcuts import render, redirect
from friends.models import Friend
from django.contrib.auth.models import User
def change_friends(request, operation, pk):
friend = User.objects.get(pk=pk)
if operation == 'add':
Friend.make_friend(request.user, friend)
elif operation == 'lose':
Friend.lose_friend(request.user, friend)
return redirect('groups:index')
aquí está la plantilla en la que la llamo (profile.html):
{% if user in friends %}
<a href="{% url 'friends:change_friends' 'remove' user_profile.id %}"><button type="button" name="btn btn-warning">UnFriend</button></a>
{% else %}
<a href="{% url 'friends:change_friends' 'add' user_profile.id %}"><button type="button" name="btn btn-success">Befriend</button></a>
{% endif %}
para mí, parece que estoy pasando los argumentos correctos. este es el error que estoy recibiendo:
NoReverseMatch at /accounts/profile/4
Reverse for 'change_friends' with arguments '('remove', 4)' not found. 1 pattern(s) tried: ['friends\\/connect/<slug:operation>/<int:pk>/']
cualquier ayuda sería muy apreciada