我正在尝试在Django视图中访问变量。尽管它未在两个视图中均作为参数传递,但它只能在一个视图中使用,而在另一视图中则无效。
该变量是从.apps导入的,称为botlist_root
。它包含在服务器上运行的漫游器的列表。
这是它起作用的视图:
@login_required
def bot(request, name):
if request.method == 'GET':
for bot in botlist_root:
if bot.getname() == name:
context = {'bot': bot}
return render(request, 'bot_manager/details.html', context)
context = {'name': name}
return render(request, 'bot_manager/error.html', context)
else:
for bot in botlist_root:
if bot.getname() == name:
context = {'bot': bot}
bot.start()
return redirect('./', context)
而这正是它不起作用查看:
@login_required
def index(request):
if request.method == 'GET':
namelist = []
for bot in botlist_root:
namelist.append(bot.getname())
context = {'bots': botlist_root}
return render(request, 'bot_manager/index.html', context)
else:
botlist_root = listbots()
namelist = []
bots = botlist_root
for bot in bots:
namelist.append(bot.getname())
context = {'bots': bots}
return render(request, 'bot_manager/index.html', context)
这些都是导入语句:
from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required
from .apps import botlist_root, listbots
from django.template import TemplateDoesNotExist
我不理解为什么我可以访问botlist_root
从机器人视图,但不会从索引图。