2016-09-28 2 views
-1

Я пытаюсь написать FBV для удаления темы, но есть некоторые проблемы, которые я не могу понять. Это Django 1.7.1. Ниже приведены соответствующие коды.django Кажется, что функция func не работает

Модель связи:

... 
@models.permalink 
def get_delete_url(self): 
    return 'comm_delete', [self.uuid] 

URLconf:

url(r'^(?P<uuid>[\w-]+)/delete/$', views.comm_delete, name='comm_delete'), 

мнения:

def comm_delete(request, uuid): 
    obj = get_object_or_404(Communication, uuid=uuid) 
    account = Account.objects.get(id=obj.account.id) 
    if request.method == 'POST': 
     obj.delete() 
     return HttpResponseRedirect(reverse('crmapp.accounts.views.account_detail', args=(account.uuid,))) 
    return render(request, 'subject_confirm_delete.html', {'object_name': 'Communication', 'object': obj}) 

, когда я нажимаю

<a class="cancel" href="{{ comm.get_delete_url }}"></a> 

Перемещение страницы на uuid/delete/url, отображение формы. Если я все еще нажимаю кнопку «Отмена», просто обновите страницу и ничего не измените. Так как я могу это исправить? Помоги мне, пожалуйста!

object_confirm_delete.html: object_confirm_delete.html

страницы при нажатии на кнопку отмены: clicked_move_to_page

urls.py в приложение связи, как это:

url(r'^(?P<uuid>[\w-]+)/', views.comm_detail, name='comm_detail'), 
url(r'^(?P<uuid>[\w-]+)/delete/$', views.comm_delete, name='comm_delete'), 

, как вы можете видеть, первый не имеет «$» в конце, поэтому, когда я связываю URL второго, первое регулярное выражение соответствует и выполняет представление comm_detail. После того, как я его модифицирую, он работает хорошо.

+2

Я не понимаю, что еще вы ожидаете, когда вы нажмете эту ссылку. –

+0

Пожалуйста, напишите свой 'subject_confirm_delete.html'. – Selcuk

+0

@Selcuk Обновлено, спасибо – Charles

ответ

0

urls.py в приложение связи, как это:

url(r'^(?P<uuid>[\w-]+)/', views.comm_detail, name='comm_detail'), 
url(r'^(?P<uuid>[\w-]+)/delete/$', views.comm_delete, name='comm_delete'), 

, как вы можете видеть, первый один не имеет «$» в конце, так что, когда я связать URL из второго, то первый его регулярное выражение соответствует и выполняет просмотр comm_detail. После того, как я его модифицирую, он работает хорошо. Это означает, что FBV правильный.

Смежные вопросы