Собственно проблема:
Есть приложение в джанге название - 'stats'(цель приложения вытаскивать значения из бд и подключать его когда нужно)
Вот как выглядит та вьюха, к которой мне нужен глобальный доступ во всем проекте
stats views.pyclass ShowStats(View):
def get(self,request):
if request.user.is_authenticated:
global auser,UserGold ,UserKnights,UserXp,UserEnergy,UserPower,UserLevel,status,xpfl,progress
auser = request.user.id
GetStat = UserAttribute.objects.filter(user_id = auser)
for s in GetStat:
UserPower = s.power
UserGold = s.gold
UserKnights = s.knights
UserXp = s.xp
UserLevel = s.level
UserEnergy = s.energy
status = s.isComplete
mylvl = UserLVL.objects.raw("SELECT lvl FROM userlevel_userlvl WHERE lvlxp - {}<=0".format(UserXp))
for j in mylvl:
cl = j.lvl
xpforlevel = UserLVL.objects.raw("SELECT lvl,lvlxp FROM userlevel_userlvl WHERE lvl={}".format(UserLevel))
for k in xpforlevel:
xpfl = k.lvlxp
if UserXp >= xpfl:
UserAttribute.objects.filter(user_id=auser).update(level=F('level')+1,xp=F('xp')-UserXp)
progress = decimal.Decimal(round((UserXp/xpfl)*100,0))
#setLevel = UserAttribute.objects.filter(user_id = auser).update(level=cl)
return auser,UserGold,UserKnights,UserXp,UserLevel,UserEnergy,UserPower,status,xpfl,progress
else:
return redirect('index')
Вот так я её импортирую
from game.views import ShowStats
Вызываю метод уже в другой вьюхе и по идее должен получить значения из return,но return ничего не возвращает.
class FarmIndex(View):
def get(self,request):
usr = request.user.id
ShowStats.get(self,request)
context = {
'UserGold':UserGold,'UserKnights':UserKnights,'UserXp':UserXp,'UserLevel':UserLevel,
'UserEnergy':UserEnergy,'UserPower':UserPower,'status':status,'xpfl':xpfl,'progress':progress,
}
return render(request,'farm.html',context)
Если вставить класс что вытаскивает значения во вьюху, в которой я вызываю этот метод - все работает. При импорте - нет(
Подозреваю, что в начале
if request.user.is_authenticated:
возвращает False
Просто хочется по минимуму нарушать принцип DRY
Помогите,пожалуйста.
PS код ховно)) Но учусь