我在使用django 1.10.6时遇到此错误:
/ AgregarTienda中的ValueError视图chilegaleria.views.AgregarTienda_View未返回HttpResponse对象 . 它返回了None .
这是我的观点
from django.shortcuts import render
from django.http import HttpResponse
from chilegaleria.forms import AgregarTiendaForm
# Create your views here.
def index(request):
return render(request, 'chilegaleria/index.html')
def AgregarTienda_View(request):
if request.method == 'POST':
form = AgregarTiendaForm(request.POST)
if form.is_valid():
form.save()
return redirect('chilegaleria:index')
else:
form = AgregarTiendaForm
return render(request, 'chilegaleria/AgregarTienda.html', {'form':form})
此外,当我将类Meta:model = DatosTienda添加到我的forms.py文件时,我收到此错误:
C:\ chilegalerias> manage.py检查Traceback(最近一次调用最后一次):文件“C:\ chilegalerias \ manage.py”,第22行,在execute_from_command_line(sys.argv)文件“C:\ Python27 \ lib \ site -packages \ django-1.10.6-py2.7.egg \ django \ core \ management__init __ . py“,第367行,在execute_from_command_line utility.execute()文件”C:\ Python27 \ lib \ site-packages \ django-1.10 .6-py2.7.egg \ django \ core \ management__init __ . py“,第359行,执行self.fetch_command(子命令).run_from_argv(self.argv)文件”C:\ Python27 \ lib \ site-packages \ django -1.10.6-py2.7.egg \ django \ core \ management \ base.py“,第294行,在run_from_argv中自执行(* args,** cmd_options)文件”C:\ Python27 \ lib \ site-packages \ django-1.10.6-py2.7.egg \ django \ core \ management \ base.py“,第345行,执行输出= self.handle(* args,** options)文件”C:\ Python27 \ lib \ site-packages \ django-1.10.6-py2.7.egg \ django \ core \ management \ commands \ check.py“,第68行,句柄fail_level = getattr(checks,options ['fail_level']),File “C:\ Python27 \ LIB \站点包\ djan go-1.10.6-py2.7.egg \ django \ core \ management \ base.py“,第374行,检查include_deployment_checks = include_deployment_checks,文件”C:\ Python27 \ lib \ site-packages \ django-1.10.6 -py2.7.egg \ django \ core \ management \ base.py“,第361行,在_run_checks中返回checks.run_checks(** kwargs)文件”C:\ Python27 \ lib \ site-packages \ django-1.10.6 -py2.7.egg \ django \ core \ checks \ registry.py“,第81行,在run_checks中new_errors = check(app_configs = app_configs)文件”C:\ Python27 \ lib \ site-packages \ django-1.10.6- py2.7.egg \ django \ core \ checks \ urls.py“,第14行,在check_url_config中返回check_resolver(解析程序)文件”C:\ Python27 \ lib \ site-packages \ django-1.10.6-py2.7 . egg \ django \ core \ checks \ urls.py“,第24行,在check_resolver中为resolver.url_patterns中的模式:文件”C:\ Python27 \ lib \ site-packages \ django-1.10.6-py2.7.egg \ django \ utils \ functional.py“,第35行,在get res = instance.dict [self.name] = self.func(instance)文件”C:\ Python27 \ lib \ site-packages \ django-1.10.6- py2.7.egg \ django \ urls \ resolvers.py“,第313行,in url_patterns patterns = getattr(self.urlconf_module,“urlpatterns”,self.urlconf_module)文件“C:\ Python27 \ lib \ site-packages \ django-1.10.6-py2.7.egg \ django \ utils \ functional.py” ,第35行,在get res = instance.dict [self.name] = self.func(instance)文件“C:\ Python27 \ lib \ site-packages \ django-1.10.6-py2.7.egg \ django \ url \ resolvers.py“,第306行,在urlconf_module中返回import_module(self.urlconf_name)文件”C:\ Python27 \ lib \ importlib__init __ . py“,第37行,在import_module中导入(名称)文件”C:\ chilegalerias \ chilegalerias \ urls.py“,第21行,在url(r'^',include('chilegaleria.urls')),文件”C:\ Python27 \ lib \ site-packages \ django-1.10.6-py2.7 . egg \ django \ conf \ urls__init __ . py“,第50行,in include urlconf_module = import_module(urlconf_module)文件”C:\ Python27 \ lib \ importlib__init __ . py“,第37行,在import_module import(name)文件”C:\ chilegalerias \ chilegaleria \ urls.py“,第3行,来自chilegaleria.views导入索引,AgregarTienda_View文件”C:\ chilegalerias \ chilegaleria \ views.py“,第3行,in来自chilegaleria.forms导入AgregarTiendaForm文件“C:\ chilegalerias \ chilegaleria \ forms.py”,第4行,在类AgregarTiendaForm(forms.ModelForm)中:文件“C:\ chilegalerias \ chilegaleria \ forms.py”,第7行,in AgregarTiendaForm类Meta:文件“C:\ chilegalerias \ chilegaleria \ forms.py”,第8行,在Meta Model = DatosTienda NameError:name'DatosTienda'未定义
这是我的forms.py文件:
from django import forms
from chilegaleria.models import models
from django.forms import ModelForm
class AgregarTiendaForm(forms.ModelForm):
class Meta:
model = DatosTienda
fields = [
'nombre',
'estado',
'ciudad',
'comuna',
'direccion',
]
labels = {
'nombre': 'Nombre de la Tienda',
'estado': 'Region',
'ciudad': 'Ciudad',
'comuna': 'Comuna',
'direccion': 'Direccion',
}
widgets = {
'nombre': forms.TextInput(attrs={'class':'form-control'}),
'estado': forms.TextInput(attrs={'class':'form-control'}),
'ciudad': forms.TextInput(attrs={'class':'form-control'}),
'comuna': forms.TextInput(attrs={'class':'form-control'}),
'direccion': forms.TextInput(attrs={'class':'form-control'}),
}
1 回答
您的日志堆栈表明您必须在文件chilegaleria \ forms.py中导入模型DatosTienda
还要检查您的视图,因为如果您收到GET请求,则表单未定义,因此您将在分配错误之前获得引用 .