gpt4 book ai didi

python - 从 django url 传递 'start' 会出现错误 "start() takes exactly 2 arguments (1 given) "

转载 作者:行者123 更新时间:2023-11-30 23:18:09 25 4
gpt4 key购买 nike

不幸的是,我在 Django 中遇到了意外错误。我有一个这个网址:

    urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'', include('ads.urls',namespace="ads")),
)
urlpatterns += patterns('ads.search',
url(r'^getsubcategories/$', 'getsubcategories', name="getsubcategories"),
url(r'^anuncios/([\w\-]+)/$', 'anuncios_search', name="anuncios_search"),
url(r'^([\w\-]+)/([\w\-]+)/$', 'search',name="search_text"),
url(r'^([\w\-]+)/([\w\-]+)/([\w\-]+)/$', 'ads_details',name="ads_details"),
)

当我要调用网址“anuncios_search”时,这将适用于接受“/anuncios/start/”的所有搜索模式,请参阅下面的工作网址:

示例:

1)/anuncios/avc/:这有效。

2)/anuncios/finds/:这有效。

3)/anuncios/start-day/:这有效。

4)/anuncios/starts/:这有效。

5)/anuncios/start/:此网址引发错误:

Internal Server Error: /anuncios/start/
Traceback (most recent call last):
File "/home/yogesh/ENV/munda/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 114, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
TypeError: start() takes exactly 2 arguments (1 given)
[13/Nov/2014 05:36:57] "GET /anuncios/start/ HTTP/1.1" 500 11496

我的views.py是:

def anuncios_search(request,search_text=None):
"""
This method for home page search, for acept contactos category
"""
if search_text:
search_text_list = [i for i in search_text.split("-") if len(i)>2]
else:
search_text_list=[]

ads = Ad.objects.exclude(subcategory__category__adult=True,user__is_active=True).order_by('-active','-republishDate')
if search_text_list:
ads = ads.filter(
reduce(lambda x, y: x | y, [Q(title__icontains=word) for word in search_text_list])|
reduce(lambda x, y: x | y, [Q(description__icontains=word) for word in search_text_list])
).order_by('-active','-republishDate')

current_filters= {'current_category':None,'ads':ads_paginator(request,ads)}
current_filters['search_text'] = search_text and " ".join(search_text.split("-")) or None
current_filters['search_text_list'] = search_text_list and search_text_list or None
return render(request,'search/search.html',current_filters)

请帮我解决这个错误。

提前致谢

最佳答案

正如 xecgr 所说,必须有另一个 View 或函数(名为 start)以某种方式被导入和使用。也许在您的 INSTALLED_APPS 上导入的其他模块中...也许有某种模式使用正则表达式并调用以此匹配单词命名的 View ? ... 谁知道。这绝对很奇怪。

问题的出现可能是因为您正在整个 ads.search 模块上寻找此模式的 View ,从而导致出现意外结果。为什么不尝试以下方法:

而不是这样做:

urlpatterns += patterns('ads.search',
url(r'^getsubcategories/$', 'getsubcategories', name="getsubcategories"),
url(r'^anuncios/([\w\-]+)/$', 'anuncios_search', name="anuncios_search"),
)

尝试:

urlpatterns += patterns('ads.search.views',
url(r'^getsubcategories/$', 'getsubcategories', name="getsubcategories"),
url(r'^anuncios/([\w\-]+)/$', 'anuncios_search', name="anuncios_search"),
)

这应该将您的网址限制为上面列出的views.py 文件中列出的 View 。

如果这不能解决问题,那么请将您的整个导入发布在 urls.py 的开头。

您可以尝试的另一件事是查找名为 start 的模式/ View 。为此,您可以尝试:

pip install django-extensions

然后将 django_extensions 添加到您的 INSTALLED_APPS 中。然后只需使用以下命令列出项目中的所有 url 及其 View :

python manage.py show_urls

或者,如果它们太多并且开始 View 确实存在于某处,那么这应该可以工作:

python manage.py show_urls | grep start

关于python - 从 django url 传递 'start' 会出现错误 "start() takes exactly 2 arguments (1 given) ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26901669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com