Je pense que mon problème est lié à la façon dont j'ai structuré mon projet de pyramide. Ce que je veux accomplir est de faire fonctionner mon code sur toutes les vues, je ne veux pas coller les mêmes codes sur toutes les vues. C'est comme si j'incluais le code dans toutes les vues simplement en l'appelant. C'est mon code.Comment mettre des sessions sur toutes les pages sans mettre le code de session sur toutes les vues dans la pyramide?
mon module Assistant
from pyramid.view import view_config, view_defaults
from .models import *
from datetime import datetime
from pyramid.response import Response
from bson import ObjectId
from pyramid.httpexceptions import HTTPFound
import json
class WizardView:
def __init__(self, request):
self.request = request
@view_config(route_name='wizard', renderer='templates/wizard.jinja2')
def wizard(self):
session = self.request.session
if session:
return {'fullname':session['name'],'userrole':session['userrole']}
else:
url = self.request.route_url('login')
return HTTPFound(location=url)
mon module de facture
from pyramid.view import view_config, view_defaults
from .models import *
from datetime import datetime
from pyramid.response import Response
from bson import ObjectId
from pyramid.httpexceptions import HTTPFound
class BillView:
def __init__(self, request):
self.request = request
@view_config(route_name='bills', renderer='templates/bills.jinja2')
def bills(self):
session = self.request.session
if session:
return {'fullname':session['name'],'userrole':session['userrole']}
else:
url = self.request.route_url('login')
return HTTPFound(location=url)
Comme vous pouvez le voir, je dois coller ce code deux fois (ce code vérifie si la session existe, sinon, redirigent utilisateur page de connexion)
session = self.request.session
if session:
return {'fullname':session['name'],'userrole':session['userrole']}
else:
url = self.request.route_url('login')
return HTTPFound(location=url)
J'ai essayé de chercher et je pense que ce dont j'ai besoin est une sorte d'auto lo ader? Comment puis-je l'appliquer sur une pyramide? Ou devrais-je m'en tenir à ce processus?