Dil*_*Mac 1 python regex django url
我有一个名为FAQ的应用程序我正在使用django-vanilla-views,这个应用程序正在运行,但我收到了错误,如上面的标题但错误的正文描述说: NoReverseMatch:反向'delete_question'带参数'(''' ,)'和'找不到关键字参数'{}'.尝试了1种模式:['faq/delete /(?P\d +)/ $']

这是代码:
from django.db import models
# Create your models here.
from autoslug import AutoSlugField
from taggit.managers import TaggableManager
class QuestionType(models.Model):
title = models.CharField(max_length=255, unique=True)
slug = AutoSlugField(populate_from='title', unique=True, max_length=255, blank=False)
def __unicode__(self):
return u"%s " % (self.title)
class Question(models.Model):
title = models.CharField(max_length=255)
description = models.TextField()
slug = AutoSlugField(populate_from='title', max_length=255, unique=True, blank=False)
category = models.OneToOneField('QuestionType', blank=False, related_name='question')
tags = TaggableManager()
def __unicode__(self):
return "%s. %s " % (self.title, self.category)
from .models import Question from vanilla import CreateView, DeleteView, UpdateView, ListView from django.core.urlresolvers import reverse_lazy
# Create your views here.
class QuestionList(ListView):
model = Question
template_name = "faq/question_list.jade"
class CreateQuestion(CreateView):
model = Question
template_name = "faq/question.jade"
success_url = reverse_lazy('question_list')
class EditQuestion(UpdateView):
model = Question
template_name = 'faq/question_list.jade'
success_url = reverse_lazy('question_list')
class DeleteQuestion(DeleteView):
model = Question
success_url = reverse_lazy('delete_question')
from django.conf.urls import patterns, url
from .views import QuestionList, CreateQuestion, EditQuestion, DeleteQuestion
urlpatterns = patterns(
'',
# URL pattern for the
url(regex=r'^faq/$', view=QuestionList.as_view(), name='question_list'),
url(regex=r'^faq/create/$', view=CreateQuestion.as_view(), name='create_question'),
url(regex=r'^faq/edit/(?P<pk>\d+)/$', view=EditQuestion.as_view(), name='edit_question'),
url(regex=r'^faq/delete/(?P<pk>\d+)/$', view=DeleteQuestion.as_view(), name='delete_question'),
)
from vanilla import TemplateView
class HomePageView(TemplateView):
template_name = "pages/home.jade"
class TermsPageView(TemplateView):
template_name = "templates/question_list.jade"
pass
Run Code Online (Sandbox Code Playgroud)
配置/ urls.py
from django.conf import settings
from django.conf.urls import patterns, include, url
from django.conf.urls.static import static
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'', include('apps.pages.urls')),
url(r'', include('apps.faq.urls')),
url(r'^admin/', include(admin.site.urls)),
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Run Code Online (Sandbox Code Playgroud)
base.jade
.collapse.navbar-collapse
ul.nav.navbar-nav.pull-left
{% url 'home' as home %}
{% if request.path == home %}
li.active
a(href="{% url 'home' %}") {% blocktrans %}Home{% endblocktrans %}
{% else %}
li
a(href="{% url 'home' %}") {% blocktrans %}Home{% endblocktrans %}
{% endif %}
{% url 'about' as about %}
{% if request.path == about %}
li.active
a(href="{% url 'about' %}") {% blocktrans %}About us{% endblocktrans %}
{% else %}
li
a(href="{% url 'about' %}") {% blocktrans %}About us{% endblocktrans %}
{% endif %}
{% url 'contact' as contact %}
{% if request.path == contact %}
li.active
a(href="{% url 'contact' %}") {% blocktrans %}contact{% endblocktrans %}
{% else %}
li
a(href="{% url 'contact' %}") {% blocktrans %}contact{% endblocktrans %}
{% endif %}
{% url 'faq' as faq %}
{% if request.path == faq %}
li.active
a(href="{% url 'question_list' %}") {% blocktrans %}FAQ{% endblocktrans %}
{% else %}
li
a(href="{% url 'question_list' %}") {% blocktrans %}FAQ{% endblocktrans %}
{% endif %}
{% if request.user.is_staff %}
li
a(href="{% url 'admin:index' %}") {% blocktrans %}Admin{% endblocktrans %}
{% endif %}
Run Code Online (Sandbox Code Playgroud)
错误是关于正则表达式,这是不清楚为什么工作,现在错误显示!! 需要一些帮助谢谢
您需要为'delete_question'url指定'pk'参数.这样的事情应该有效:
class DeleteQuestion(DeleteView):
model = Question
def get_success_url(self):
return reverse('delete_question', kwargs={'pk': self.object.pk})
Run Code Online (Sandbox Code Playgroud)
但是,是的,为什么删除后要让DeleteView重定向到自己呢?
| 归档时间: |
|
| 查看次数: |
3290 次 |
| 最近记录: |