【问题标题】:Reverse for 'detail' with arguments '('',)' and keyword arguments '{}' not found. 1 pattern(s) tried:未找到带有参数 '('',)' 和关键字参数 '{}' 的 'detail' 的反向操作。尝试了 1 种模式:
【发布时间】:2015-02-08 01:12:57
【问题描述】:

这里是 Django/Python 新手。我正在使用 python 3.4 和 Django 1.7 版本。

我正在尝试获取带有要加载的超链接的索引页面,但我看到了这个问题。

我的 index.html(删除了不需要的行)

<form action="{% url 'testapp:search' %}" method="get">
{% csrf_token %}

        <a href="{% url 'testapp:detail' morphological %}"">Morphological</a> 

</form>

urls.py

from django.conf.urls import patterns, url

from testapp import views

urlpatterns = patterns('',
    #url(r'^$', views.IndexView.as_view(), name='index'),
    url(r'^$', 'testapp.views.index', name='index'),
    #url(r'^search-form/$', views.IndexView.as_view(), name='index'),
    url(r'^search-form/$', 'testapp.views.index', name='index'),
    #url(r'^(?P<pk>\d+)/$', views.DetailView.as_view(), name='detail'),
    #url(r'^option=(?P<option>\d+)/$', views.DetailView.as_view(), name='detail'),
    url(r'^detail/(?P<val>\w+)/?$', 'testapp.views.detail', name='detail'),
    #url(r'^search/$', views.search, name='search'),
    url(r'^search/$', views.search, name='search'),
)

views.py

from django.shortcuts import render, get_object_or_404
from django.shortcuts import render_to_response

# Create your views here.
from django.http import HttpResponse, HttpResponseRedirect

#from polls.models import Question, Choice

from testapp.models import Molecular, Morphological

#from django.template import RequestContext, loader

from django.http import Http404
from django.core.urlresolvers import reverse
from django.template import RequestContext

from django.views import generic

def index(request):
    return render_to_response('testapp/index.html', context_instance=RequestContext(request))

def search(request):
    if 'q' in request.GET:
        message = 'You searched for: %r' % request.GET['q']
    else:
        message = 'You submitted an empty form.'
    return HttpResponse(message)

def detail(request, val):
    message = 'hello form.'
    return HttpResponse(message)


#class DetailView(generic.DetailView):
#    model = Morphological
#    template_name = 'testapp/detail.html'

如果单击链接,我会尝试传递一个参数并使用该参数来查询数据库。我尝试了各种方法,此时我被卡住了。我想要一个字符串,而不是我在标准投票应用程序中使用的主键。只是我的正则表达式错了吗?

解决此问题的任何帮助都会有很大帮助。谢谢。

【问题讨论】:

    标签: python django


    【解决方案1】:

    在 URL 中的参数周围加上单引号:

    <a href="{% url 'testapp:detail' 'morphological' %}"">Morphological</a> 
    

    【讨论】:

      猜你喜欢
      • 2016-11-17
      • 1970-01-01
      • 1970-01-01
      • 2016-11-21
      • 2014-11-23
      • 2017-01-06
      • 2018-07-12
      • 2016-05-08
      • 2016-08-27
      相关资源
      最近更新 更多