我想通过网址将kwargs传递给我的查看功能。
urls.py
urlpatterns = [
# ------------- set relations --------------------
url(r'^approve-form/$', views.approve_form,
{'content_type':None, 'form_id':None,}, name='approve-form'),]
views.py
def approve_form(request, content_type=None, form_id=None):
return HttpResponse('Working')
现在我使用reverse_lazy
函数从模型实例
models.py
class FormStatus(models.Model):
content_type = models.ForeignKey(ContentType)
form_id = models.IntegerField(verbose_name='Form Ref ID')
def __str__(self):
return "{}".format(self.content_type)
def get_approve_link(self):
return reverse_lazy("flow-control:approve-form", kwargs={'form_id':self.form_id,
'content_type':self.content_type})'
错误
Reverse for 'approve-form' with arguments '()' and keyword arguments '{'content_type': <ContentType: admin sanc model>, 'form_id': 12}' not found. 1 pattern(s) tried: ['flow-control/approve-form/$']
这种方法有问题,还是有更好的方法?
提前致谢。
PS:我试过了url documentation,但无法理解。
答案 0 :(得分:1)
将您的网址更改为并检查其是否有效 -
urlpatterns = [
# ------------- set relations --------------------
url(r'^approve-form/(?P<content_type>\w+)/(?P<form_id>\d+)/$', views.approve_form, name='approve-form'),]
<强>视图强>
def approve_form(request, content_type=None, form_id=None):
return HttpResponse('Working')