2016-07-25 1 views
1

не могу понять, как решить эту ошибкуDjango: Reverse для 'delete' с аргументами '(49,)' и аргументы ключевого слова '{}' не найдены. 1 образец (s) попробовал: [ 'лакомый/delete_tidbit /']

Вот urls.py сниппет:

urlpatterns = [ 
    ... 
    url(r'^delete_tidbit/', views.delete_tidbit, name='delete'), 
    ... 
] 

Вид:

def delete_tidbit(request, pk): 
    tidbit = Tidbit.objects.get(pk=pk) 
    tidbit.delete() 
    return HttpResponseRedirect(request.META.get('HTTP_REFERER')) 

И часть шаблона, который вызывает эту ошибку:

<a href="{% url 'delete' tidbit.pk %}"> 

ответ

2

Вопрос здесь:

url(r'^delete_tidbit/', views.delete_tidbit, name='delete'), 

Этот URL не принимает аргумент, в котором, как вы пытаетесь дать ему один.

Попробуйте вместо этого:

url(r'^delete_tidbit/(?P<pk>.*)', views.delete_tidbit, name='delete'), 

Но остерегайтесь: вы принимаете запросы GET для удаления элементов в вашей базе данных, любой гусеничный встретив эти ссылки могут пытаться следовать за ними и случайно удалить ваш данные. Подумайте о том, как использовать GET, который предоставляет форму для отправки POSTED, чтобы фактический пользователь выполнял действие.

+0

Perfect. И спасибо, я обязательно буду в этом разбираться. – conjenks