简体   繁体   中英

local variable 'context' referenced before assignment in django

from django.shortcuts import render
from main import (models,forms)
from django.http import HttpResponseRedirect



# Create your views here.

def index(request):
    return render (request, 'index.txt')

def about(request):
    return render (request, 'about.txt')

def contact(request):
    contactform = forms.ContactForm()

    if request.method == "POST":
        contactform = forms.ContactForm(request.POST)
        if contactform.is_valid():
            contact = contactform.save()
            return HttpResponseRedirect('/contact')
        context = {
        "contactform" : contactform

        }
    return render(request, 'contact.txt', context)

def post(request):
    return render (request, 'post.txt')

You're sending context without declaring it when requesting with a GET method.

from django.shortcuts import render
from main import (models,forms)
from django.http import HttpResponseRedirect


# Create your views here.

def index(request):
    return render (request, 'index.txt')

def about(request):
    return render (request, 'about.txt')

def contact(request):
    if request.method == "GET":
        context = {
            "contactform" : forms.ContactForm()
        }
    if request.method == "POST":
        contactform = forms.ContactForm(request.POST)
        if contactform.is_valid():
            contact = contactform.save()
            return HttpResponseRedirect('/contact')
        context = {
            "contactform" : contactform
        }
    return render(request, 'contact.txt', context)

def post(request):
    return render (request, 'post.txt')

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM