python - Django 类型错误 : url() takes from 2 to 4 positional arguments but 16 were given

标签 python django django-urls

我对 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

下面是我的网址文件

# 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),
)

这是导致错误的原因。它看起来与 Django 1.8 中已弃用的语法 urlpatterns =patterns('', 类似。

应该是这样的:

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() 语法。

关于python - Django 类型错误 : url() takes from 2 to 4 positional arguments but 16 were given,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52949375/

相关文章:

Python 生成器,添加两个数字数组 : am I executing this properly?

python - Xlwings 从定义的名称中获取值

python - 重复的 Django 模型实例和所有指向它的外键

python - ModelAdmin 中的 Django csrf_token

python - 我无法运行服务器 Django 2.0

python - Django - 如何获得永久链接以使用 "throwaway"slug

python - 按组滚动计数独特的分类特征

python - for循环中的字符串调整

javascript - 如何在 javascript 中将相关的 HTML 元素绑定(bind)在一起?

Django 和服务 worker - 在应用程序的根 url 处提供 "sw.js"