我正在尝试将django-allauth包中的注册视图添加到我的 Django 项目中。
我将视图添加到我的urls.py文件中,但我不断收到以下错误:
Reverse for 'account_login' not found. 'account_login' is not a valid view function or pattern name.
Run Code Online (Sandbox Code Playgroud)
以下是我将视图添加到我的网址的方法:
from allauth.account.views import SignupView
urlpatterns = [
path("signup/", SignupView.as_view(), name="account_signup"),
]
Run Code Online (Sandbox Code Playgroud)
我真的不明白导入视图时缺少什么,有人可以帮助我吗?
我想在 url 中的单个视图中支持上述视图...在我的搜索中,我遇到了这篇文章,该文章不再受支持,并且我找到的所有教程都已过时,其中演示了如何完成任务Django 1.8.3。
在“products/views.py”中,我创建了产品和详细信息的视图。ProductListView 将显示所有产品,而 ProductDetailView 将显示单个产品详细信息(标题、描述、价格等)。
产品/views.py
class ProductListView(ListView):
queryset = Product.objects.all()
template_name = "products/list.html"
class ProductDetailView(DetailView):
queryset = Product.objects.all()
template_name = "products/detail.html"
Run Code Online (Sandbox Code Playgroud)
products/urls.py 包含 ProductListView 和 ProductDetailView 视图的路径。ProductListView 似乎是正确的。ProductDetailView 不正确!我收到以下警告:
警告: ?: (2_0.W001) 您的 URL 模式 '^products/(?P\d+)/$' [name='details'] 的路由包含 '(?P<',以 '^' 开头,或以“$”结尾。这可能是迁移到 django.urls.path() 时的疏忽。
ecommerce.py/urls.py 是我包含产品和详细信息网址的地方
电子商务/urls.py:
from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
from django.urls import path, include
from .views import home, about, contact
urlpatterns = [
path('admin/', admin.site.urls), …Run Code Online (Sandbox Code Playgroud) 我只是按照http://docs.djangoproject.com/en/dev/ref/contrib/flatpages/设置django的flatpages应用程序
一切都很好,但是当我链接到平面页面时,我总是得到:
Page not found (404)
Request Method: GET
Request URL: http://example.com/about/
[..]
The current URL, about/, didn't match any of these.
Run Code Online (Sandbox Code Playgroud)
那是什么?什么可能导致此错误?
提前致谢...
我有一个问题,在Django中调用url模板标签会附加网站名称(我不希望它在那里.)
假设网站名称是'mysite'.
例如:
<a href="{% url myapp.views.myview "myparam" %}">Link text</a>
Run Code Online (Sandbox Code Playgroud)
正在生产:
<a href="/mysite/foo/bar">Link text</a>
Run Code Online (Sandbox Code Playgroud)
当我想要它产生:
<a href="/foo/bar">Link text</a>
Run Code Online (Sandbox Code Playgroud)
我的urls.py设置如下:
from django.conf.urls.defaults import *
import mysite.myapp.views
urlpatterns = patterns('',
(r'^/foo/bar/$', 'mysite.myapp.views.myview'),
)
Run Code Online (Sandbox Code Playgroud)
谁能指出我正确的方向?
编辑 - 当网站处于开发阶段时,它位于测试服务器的子目录中,应用程序作为子目录!所以它坐在http://www.mytestserver.com/mysite上.没有缓存,所有对/ mysite的引用都在上线之前删除了.
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
(r'^admin/', include(admin.site.urls)),
(r'^events/', include('events.urls')),
)
Run Code Online (Sandbox Code Playgroud)
这是我的events.urls:
from django.conf.urls.defaults import *
from events import views
urlpatterns = patterns('',
url(r'^tonight/$', views.tonight, name='ev_tonight'),
)
Run Code Online (Sandbox Code Playgroud)
运行服务器后,我收到以下错误:
Exception Type: SyntaxError Exception Value:invalid syntax (urls.py, line 8)
我在这里错过了什么吗?
编辑:附加跟踪球
环境:
Request Method: GET
Request URL: http://127.0.0.1:8000/admin
Django Version: 1.4
Python Version: 2.7.3
Installed Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'events')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')
Traceback:
File …Run Code Online (Sandbox Code Playgroud) 我已经开始使用Django 1.5进行项目我已经对配置文件应用程序进行了以下网址,视图和测试.
当我浏览localhost:8000/profiles它工作得很好

但是当我为配置文件app运行测试时,./manage.py test profile它失败并出现以下异常
File "<stdlib>/site-packages/django/core/urlresolvers.py", line 342, in RegexURLResolver.urlconf_module
self = <RegexURLResolver 'yoda.urls' (None:None) ^/>
340 return self._urlconf_module
341 except AttributeError:
--> 342 self._urlconf_module = import_module(self.urlconf_name)
343 return self._urlconf_module
344
File "<stdlib>/site-packages/django/utils/importlib.py", line 35, in import_module
name = 'yoda.urls'
package = None
32 break
33 level += 1
34 name = _resolve_name(name[level:], package, level)
---> 35 __import__(name)
36 return sys.modules[name]
ImportError: No module named urls
Run Code Online (Sandbox Code Playgroud)
from django.conf.urls import patterns, include, url
from …Run Code Online (Sandbox Code Playgroud) 我想匹配和分组这些列出的任何单词:
aboutus/,race/,cruise/,westerlies/,weather/,reach/,gear/或empty_string
这是一个解决方案,但与empty_string不匹配:
^(aboutus|race|cruise|westerlies|weather|reach|gear)/$
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:如何在此匹配中包含空字符串?
我仍然没有得到一个很好的解决方案.
所以我专门为empty_string添加了一个正则表达式:ie ^$.
注意:这些正则表达式适用于django urls.py.
更新:如果捕获组不包含,将会更好/
这是我的urls.py
from django.conf.urls import include, url
from django.contrib import admin
from common.views import HomeView, LoadingSchoolView, ProcessSchoolView
urlpatterns = [
url(r'^$', HomeView.as_view(), name='Index'),
url(r'^admin/', include(admin.site.urls)),
url(r'^member/', include('member.urls', namespace='member')),
url(r'^common/', include('common.urls', namespace='common')),
Run Code Online (Sandbox Code Playgroud)
在我的common/urls.py中
from django.conf.urls import url
from .views import QuerySchoolView
urlpatterns = {
url(r'^querySchool/(?P<q>[a-z]*)$', QuerySchoolView.as_view(), name='querySchool'),
}
Run Code Online (Sandbox Code Playgroud)
现在,当我这样做
{% url 'common:querySchool' %},
Run Code Online (Sandbox Code Playgroud)
它给了我一个 TypeError
TypeError at /member/register/learner
argument to reversed() must be a sequence
Request Method: GET
Request URL: http://127.0.0.1:8000/member/register/learner
Django Version: 1.8.2
Exception Type: TypeError
Exception Value:
argument to reversed() …Run Code Online (Sandbox Code Playgroud) 我的Django项目“动物”有一个名为“鸟”的应用。在animals / urls.py中,“ birds” URI会这样路由到bird / urls.py:
urlpatterns=[
url(r'^birds/', include('birds.urls')),
url(r'^b/', include('birds.urls')), # alias
]
Run Code Online (Sandbox Code Playgroud)
“ birds /”是官方的永久基础URI;“ b /”被接受为快捷方式/别名。
如何将“ b /” URI(永久地)重定向到“ birds /”,这样即使用户可以输入“ b / penguin”,浏览器的地址栏也将(最终)显示“ birds / penguin”?我宁愿不要触摸“鸟”应用程序中的任何代码,因为它不应该知道(关心)项目如何将URI映射到应用程序。
我尝试使用
RedirectView.as_view(pattern_name='birds'))
Run Code Online (Sandbox Code Playgroud)
但这会导致410 Gone响应。和
RedirectView.as_view(url='/birds/'))
Run Code Online (Sandbox Code Playgroud)
将/ b /企鹅重定向到/ birds /,杀死了我的鸟。
models.py
from django.conf.urls import include, url
app_name = "Review"
urlpatterns = [
url(r'^books/', include("Review.urls", namespace='reviews')),
]
Run Code Online (Sandbox Code Playgroud)
审核\ urls.py
from django.conf.urls import include, url
from django.contrib import admin
from .views import (
ReviewUpdate,
ReviewDelete,
)
urlpatterns = [
url(r'^reviews/(?P<pk>\d+)/edit/$', ReviewUpdate.as_view(), name='review_update'),
url(r'^reviews/(?P<pk>\d+)/delete/$', ReviewDelete.as_view(), name='review_delete'),
]
Run Code Online (Sandbox Code Playgroud)
我在urlpatterns之前提供了app_name。但这在运行代码时给了我错误。错误如下:
File "E:\workspace\python\web\Book_Review_App\Book\urls.py", line 13, in <module>
url(r'^books/', include("Review.urls", namespace='reviews')),
File "E:\workspace\python\web\Book_Review_App\venv\lib\site-packages\django\urls\conf.py", line 39, in include
'Specifying a namespace in include() without providing an app_name '
django.core.exceptions.ImproperlyConfigured: Specifying a namespace in include() without providing an app_name …Run Code Online (Sandbox Code Playgroud)