Django - 全局名称未定义错误
问题描述:
我有一个NameError: global name 'CreateMapForm' is not defined
错误,但是它是间歇性的。Django - 全局名称未定义错误
我不明白这一点,因为在我的python IDE中一切似乎都很好。 CreateMapForm
只是一个简单的ModelForm
。任何人都可以指出这个问题的原因,或者建议在哪里寻找原因?
地图/ views.py:
from maps.forms import *
@login_required(login_url='/accounts/login/')
def createMap(request, folder_id):
folder = Folder.objects.get(pk=folder_id, created_by=request.user)
if type(folder) != Folder:
folder = folder.parent
nodes = folder.get_ancestors(include_self=True)
form = CreateMapForm() #this line cause the error
html = render_to_string("basqui/manage_maps_create.html", {'folder': folder, 'nodes': nodes, 'form': form}, context_instance=RequestContext(request))
response = json.dumps({'html': html})
if request.POST:
form = CreateMapForm(request.POST)
if form.is_valid():
instance = form.save(commit=False)
instance.created_by = request.user
instance.parent = folder
instance.save()
response = json.dumps({"map": {"pk": instance.pk, "name": instance.name}}, cls=DjangoJSONEncoder)
else:
html = render_to_string("basqui/manage_maps_create.html", {'folder': folder, 'nodes': nodes, 'form': form}, context_instance=RequestContext(request))
response = json.dumps({'html': html})
return HttpResponse(response, content_type="application/json")
地图/ forms.py
from django import forms
from maps.models import *
class CreateMapForm(forms.ModelForm):
class Meta:
model = BasquiMap
fields = ('name', 'layers', 'wms')
答
正如你在CreateMapForm()
的forms
你需要将其导入views
所以添加以下views
:
from maps import forms
并替换如下:
form = CreateMapForm()
有:
form = forms.CreateMapForm()
+0
嗨,对不起,这个愚蠢的问题,但从maps.forms进口*应该做对了吗? – 2014-12-03 19:46:42
+0
@BelowtheRadar你的欢迎是肯定它也可以做到! – Kasramvd 2014-12-03 20:12:10
你试过导入'CreateMapForm'(和您在您的视图需要的任何其他形式)明确地用'从maps.forms导入CreateMapForm'而不是'从maps.forms导入*'?这应该至少将间歇性错误移动到导入! – xnx 2014-12-03 19:44:23
@xnx我试了一下,就像你说我有一个ImportError,但我不知道为什么导入是nort工作。有想法吗? – 2014-12-03 19:52:13
'settings.py'' INSTALLED_APPS'中的'maps'应用程序? – xnx 2014-12-03 19:53:42