Python if语句的值未返回到视图中父函数的上下文

Python if语句的值未返回到视图中父函数的上下文,python,django,python-3.x,view,Python,Django,Python 3.x,View,这是我想在函数上下文中使用的视图 def inec_news_view(request): title = 'LGA Results' data1 = Lga.objects.all() if request.method == 'POST': selected_item = request.POST.get('item_id') obj3 = Pu_results.objects.filter(polling_unit_uniquei

这是我想在函数上下文中使用的视图

def inec_news_view(request):

    title = 'LGA Results'
    data1 = Lga.objects.all()

    if request.method == 'POST':
        selected_item = request.POST.get('item_id')
        obj3 = Pu_results.objects.filter(polling_unit_uniqueid__in=Subquery(Unit.objects.values('uniqueid').filter(lga_id=obj1)))
    context = {'title': title, 'data1': data1, 'resobj': obj3}
    return render(request, "inecnews.html", context)

我就是这样回答的

    def inec_news_view(request): # *args, **kwargs
        title = 'LGA Results'
        data1 = Lga.objects.all()
        context = {'title': title, 'data1': data1}

        if request.method == 'POST':
            selected_item = request.POST.get('item_id')
            obj = Lga.objects.get(lga_id=selected_item)
            obj1 = obj.lga_id
            obj3 = Pu_results.objects.filter(polling_unit_uniqueid__in=Subquery(Unit.objects.values('uniqueid').filter(lga_id=obj1)))


            context = {'title': title, 'data1': data1, 'resobj': obj3}
        return render(request, "inecnews.html", context)

obj3
是一个局部变量。如果需要在另一个函数中使用,则需要将其设置为全局。您会遇到什么错误?如果您正在使用
GET
方法,则需要为其定义
obj3
,因为在任何情况下,当您将其放入上下文时,未调用
POST
来定义此变量currenty。看起来如果您发出GET请求,它将出错,从那时起,
obj3
就没有定义。谢谢各位,我找到了答案issue@Barmar请不要建议使用globals,尤其不要在wsgi程序中使用。作为一般规则,如果要使局部变量在函数外部可访问,正确的方法是从函数返回它(或将其封装为对象或闭包的一部分),并且给定wsgi的执行模型,wsgi应用程序中的全局变量不应用于共享全局状态。