2016-06-10 13 views
0

Ich weiß, dass dieses Thema in Stackoverflow viele Male gesprochen wird, aber es betrifft viele verschiedene Methoden und ich brauche Hilfe. Ich bin stecken seit 4 Stunden ^^‘Python/Django - Lokale Variable vor der Zuweisung

Hier ist die Botschaft: lokale Variable‚menuItem referenzierten‘vor der Zuweisung

def B2BpartnerMenuDetailModify(request, partnerId, menuId, menuItemId): 
message = '' 
e = B2BpartnerUser(request, partnerId) 
try: 
    menuDetail = Menu.objects.get(id=menuId) 
except Menu.DoesNotExist: 
    return logoutUser(request) 
if request.method == 'POST': 
    form = MenuDetailForm(request.POST, mySelf=partnerId) 
    if form.is_valid(): 
     descrShort = form.cleaned_data['descrShort'] 
     paragraph = form.cleaned_data['paragraph'] 
     producteur = form.cleaned_data['producteur'] 
     position = MenuItem.objects.filter(menuId = menuDetail).filter(paragraph = paragraph).count() + 1 
     menuItem = MenuItem(menuId = menuDetail) 
     menuItem.descrShort = descrShort 
     menuItem.paragraph = paragraph 
     menuItem.producteur = producteur 
     menuItem.save() 
     if producteur > 0: 
      menuItemProd = MenuItemProd(menuItemId = menuItem) 
      menuItemProd.entrepriseId = producteur 
      menuItemProd.save() 
     message = _('Details modified successfuly') 
else: 
    data = {'descrShort': menuItem.descrShort, 'paragraph': menuItem.paragraph, 'producteur': menuItem.producteur} 
    form = MenuDetailForm(initial=data) 
menuItems = MenuItem.objects.filter(menuId = menuDetail).select_related() 
menus = Menu.objects.filter(entrepriseId=e) 
menuParagraph = MenuParagraph.objects.filter(actif=1) 
modifier = True 
#detail = False 
return render (request, 'front/B2Bmenu.html', {'MenuDetailForm': form, 'menus': menus, 'message': message, 'partnerId': partnerId, 'modifier': modifier, 'detail': detail, 'menuDetail': menuDetail, 'menuParagraph': menuParagraph, 'menuId': menuId, 'menuItems': menuItems}) 

Ich bin sicher, ich kann meine Seite bekommen, wenn dieser Fehler behoben ist . Ich bin sicher, dass es ein kleiner Fehler, ich bin ein Anfänger in Python, aber ich liebe die Sprache :)

Wenn Sie wollen, kann ich Ihnen mehr Details geben, aber ich glaube nicht, dass es notwendig ^^

Einen schönen Tag und danke für deine Hilfe :)

+0

Ihr 'else' Block greift auf' menuItem' zu, das nur im 'if' Block definiert ist. Wie erwarten Sie, dass dies funktioniert? –

Antwort

0

Ich habe es gefunden!

Ich habe gerade vergessen, einen weiteren Versuch für diese Variable hinzuzufügen, gleich nach dem ersten Versuch.

try: 
    menuItem = MenuItem.objects.get(id=menuItemId) 
except MenuItem.DoesNotExist: 
    return logoutUser(request) 
Verwandte Themen