2014-12-03 2 views
0

У меня есть ошибка NameError: global name 'CreateMapForm' is not defined, но это прерывистый.Django - глобальное название не определено error

Я не получаю его, потому что все кажется прекрасным в моей среде разработки python. 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') 
+0

Вы пытались импортировать 'CreateMapForm' (и любые другие формы, которые вам нужны в вашей точки зрения) явно с' от maps.forms импорта CreateMapForm', а не 'от maps.forms import * '? Это должно хотя бы переместить прерывистую ошибку в импорт! – xnx

+0

@xnx Я пробовал это, и, как вы сказали, у меня есть ImportError, но я не знаю, почему импорт работает nort. Есть идея? –

+0

Является ли приложение 'maps' в вашем' settings.py' 'INSTALLED_APPS'? – xnx

ответ

3

Как вы уже в CreateMapForm()forms вам нужно импортировать его в views так добавьте следующее views:

from maps import forms 

и заменить следующее:

form = CreateMapForm() 

с:

form = forms.CreateMapForm() 
+0

привет, извините за этот глупый вопрос, но из maps.forms import * должен сделать это правильно? –

+0

@BelowtheRadar ваш прием да, конечно, он может это сделать! – Kasramvd

Смежные вопросы