简体   繁体   English

在 django 中赋值之前引用的局部变量“上下文”

[英]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.使用 GET 方法请求时,您正在发送上下文而不声明它。

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')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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