我收到一个"类型错误:视图必须是可调用的,或者在 include(( 的情况下是一个列表/元组",用于下面的订阅 url Weather_App/url.py
import signupform.urls
import signupform.views as views
app_name = "Weather_App"
urlpatterns = [
url(r'^admin/', admin.site.urls, name='admin'),
url(r'^subscribe/', signupform.urls, name='signup'),
]
在我的其他 urls 文件注册表单/urls.py中,我遇到了类似的问题,但使用视图导入修复了它
from django.conf.urls import url
from . import views as Weather_App_views
urlpatterns = [
url(r'^$', Weather_App_views.index, name='index'),
url(r'confirm/$', Weather_App_views.confirm, name='confirm'),
]
视图看起来像
from django.http import HttpResponse
import json
from urllib.request import urlopen
from django.template import loader
from django.shortcuts import get_object_or_404, render
from django.http import *
from django.core.exceptions import ValidationError
from django.db import IntegrityError
from .models import WeatherSubscription
# Create your views here.
def index(request):
return render(request, 'signupform/index.html', {'location_set':WeatherSubscription.city_choices})
def confirm(request):
ws = WeatherSubscription(email=request.POST['email_input'], location=request.POST['location_input'])
render_kwargs = {}
try:
ws.clean_fields()
ws.save()
except ValidationError as e:
render_kwargs['invalid_message'] = 'Email not in a standard form.'
except IntegrityError as e:
render_kwargs['invalid_message'] = 'Email already subscribed.'
return render(request, 'signupform/confirm.html', render_kwargs)
模型只有一个天气订阅功能
我的结构是
已签名表单
-初始化
-应用程序
-模型
-设置
-网址
-视图
Weather_App-初始化
-设置
-网址
-世界神清
例如,如果要
导入 signupform.url,则需要将 url 文件从应用程序导入到主应用程序
from django.conf.urls import url , include
from . import views as Weather_App_vie
urlpatterns = [
url(r'^admin/', admin.site.urls, name='admin'),
url(r'^subscribe/',include('signupform.urls'), name='signup'),
]