我有一個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'(和您在您的視圖需要的任何其他形式)明確地用'從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