2016-12-22 5 views
0

У меня возникли проблемы, когда я использую slug для моего url. он сказал, что никакая почта не соответствует запросу.Django slug link страница редактирования не найдена

Проблемы, возникающие на странице редактирования и удаления, все равно работают на странице подробностей.

Но странная вещь - ошибка 404 была поднята post.views.post_detail, а не post_update.

мои URLs внутри почтового приложения

urlpatterns = [ 

url(r'r^$', post_list, name='list'), 
url(r'^create/$', post_create, name='create'), 
url(r'^(?P<slg>[\w-]+)/$', post_detail, name='detail'), 
url(r'^(?P<slg>[\w-]+)/edit/$', post_update, name='update'), 
url(r'^(?P<slg>[\w-]+)/delete/$', post_delete), 

] 

на просмотр

def post_detail(request, slg=None): 
    instance = get_object_or_404(Post, slg=slg) 
    context = { 
    "title":intance.title, 
    "instance":instance 
    } 
    return render(request, "post_detail.html", context) 

def post_update(request, slg=None): 
    instance = get_object_or_404(Post, slg=slg) 
    form = PostForm(request.POST or None, request.FILES or None, instance=instance) 
    if form.is_valid(): 
     instance = form.save(commit=False) 
     instance.save() 
     return HttpResponseRedirect(instance.get_absolute_url()) 
    context = { 
     "title":instance.title, 
     "instance":instance, 
     "form", form, 
    } 
    return render(request, "post_form.html", context) 

функция get_absolute_url также уже вернуться SLG. Единственная проблема - сообщение, не найденное на странице редактирования, даже заголовок slg совпадает с текущими доступными сообщениями.

System check identified no issues (0 silenced). 
December 23, 2016 - 17:52:00 
Django version 1.9.7, using settings 'blog.settings' 
Starting development server at http://127.0.0.1:8000/ 
Quit the server with CONTROL-C. 
Not Found: /hahaha/edit/ 
[23/Dec/2016 17:52:08] "GET /hahaha/edit/ HTTP/1.1" 404 1725 

это как функция post_update не будет выполняться.

что может быть неправильным? спасибо.

+2

Так _this_ что ваш собирается начать делать в свободное время теперь, когда ваш президентский срок заканчивается? –

+2

Похоже, у вас пара недостающих '' '. – cwallenpoole

+0

Просьба представить реальный код и полную информацию о трассировке –

ответ

2

Вам не хватает одной кавычки ' в ваших URL-адресах. шаблоны URL должен быть действительным str

url(r'r^$', post_list, name='list'), 
url(r'^create/$', post_create, name='create'), 
#   ^
url(r'^(?P<slg>[\w-]+)/$', post_detail, name='detail'), 
#      ^
url(r'^(?P<slg>[\w-]+)/edit/$', post_edit, name='edit'), 
#       ^
url(r'^(?P<slg>[\w-]+)/delete/$', post_delete), 
#       ^
+0

Простите меня за мою опечатку, написав код в вопросе, спасибо за вашу помощь, но я уверен, что меня это не беспокоит. Я не знаю, или вы знаете где-нибудь, что я мог бы проверить? –