繁体   English   中英

Django TypeError:url()需要2到4个位置参数,但是给出了16个

[英]Django TypeError: url() takes from 2 to 4 positional arguments but 16 were given

我是Django的新手,并且遇到了另一个绊脚石。 我正在将一个单独的第三方拍卖应用程序集成到我自己的项目中,在集成到我自己的应用程序之前,我会收到错误。 我似乎得到每个网址的网址错误。

   Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x0340E810>
Traceback (most recent call last):
  File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django-2.1.1-py3.7.egg\django\utils\autoreload.py", line 225, in wrapper
    fn(*args, **kwargs)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django-2.1.1-py3.7.egg\django\core\management\commands\runserver.py", line 117, in inner_run
    self.check(display_num_errors=True)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django-2.1.1-py3.7.egg\django\core\management\base.py", line 379, in check
    include_deployment_checks=include_deployment_checks,
  File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django-2.1.1-py3.7.egg\django\core\management\base.py", line 366, in _run_checks
    return checks.run_checks(**kwargs)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django-2.1.1-py3.7.egg\django\core\checks\registry.py", line 71, in run_checks
    new_errors = check(app_configs=app_configs)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django-2.1.1-py3.7.egg\django\core\checks\urls.py", line 13, in check_url_config
    return check_resolver(resolver)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django-2.1.1-py3.7.egg\django\core\checks\urls.py", line 23, in check_resolver
    return check_method()
  File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django-2.1.1-py3.7.egg\django\urls\resolvers.py", line 396, in check
    for pattern in self.url_patterns:
  File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django-2.1.1-py3.7.egg\django\utils\functional.py", line 37, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django-2.1.1-py3.7.egg\django\urls\resolvers.py", line 533, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django-2.1.1-py3.7.egg\django\utils\functional.py", line 37, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django-2.1.1-py3.7.egg\django\urls\resolvers.py", line 526, in urlconf_module
    return import_module(self.urlconf_name)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\Users\User\Desktop\auction_site\YAAS\urls.py", line 31, in <module>
    (r'^bidauction/(?P<id>\w+)/$', bid_auction),
TypeError: url() takes from 2 to 4 positional arguments but 16 were given

下面是我的url文件

# from django.conf.urls import patterns, include, url from django.conf.urls import include, url from django.urls import path from YAASApp.views import * from django.views.decorators.csrf import csrf_exempt

from django.contrib import admin
# admin.autodiscover()

urlpatterns = url('',
    path('admin/', admin.site.urls),
    #url(r'^', include('YAASApp.urls')),
    (r'^home/$', home),
    (r'^createuser/$', register),
    (r'^login/$', login),
    (r'^logout/$', logout),
    (r'^edituser/$',edit_user_info),
    (r'^addauction/$',add_auction),
    (r'^saveauction/$',save_auction),
    (r'^editauction/(?P<id>\w+)/$', edit_auction),
    (r'^saveeditedauction/(?P<id>\w+)/$',save_edited_auction),
    (r'^canceledit/(?P<id>\w+)/$',canceledit),
    (r'^auction/(?P<id>\w+)/$', view_auction),
    (r'^banauction/(?P<id>\w+)/$', ban_auction),
    (r'^changelang/$', changelang),
    # (ur'^search/(\w+)/$', search),
    # (ur'^search/$', search),
    (r'^bidauction/(?P<id>\w+)/$', bid_auction),

    #url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),

    # (ur'^api/v1/search/$', apisearch),
    # (ur'^api/v1/search/(\w+)/$', apisearch),

    # (ur'^api/v2/bid/(?P<id>\w+)/$', apibid),

    # path('admin/', admin.site.urls), )

urlpatterns应该是模式列表 你有,

urlpatterns = url('',
    path('admin/', admin.site.urls),
)

这导致了错误。 它看起来类似于语法urlpatterns = patterns('',它在Django 1.8中已弃用。

它应该是这样的:

from django.urls import path
from django.conf.urls import url

urlpatterns = [
    path('admin/', admin.site.urls),
    url(r'^home/$', home), 
    url(r'^createuser/$', register),
    ...
]

注意你不能使用像(r'^home/$', home),这样的元组。 您必须使用带有正则表达式的url()re_path ,例如url(r'^home/$', home), ,或使用新的path()语法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM