[英]how to check logged in user in context processors file in django
我正在使用上下文處理器來顯示購物車中的總產品以及我項目的 header 和頁腳中的其他詳細信息。 這是我的上下文處理器文件“custom_context.py”
from models import Event, Ticket_Cart_details
def get_base_content(request):
music_events = Event.objects.all().filter(category='music', status = True).values('id','event_title').order_by('-id')[:4]
sports_events = Event.objects.all().filter(category='sports', status = True).values('id','event_title').order_by('-id')[:4]
experience_events = Event.objects.all().filter(category='experience', status = True).values('id','event_title').order_by('-id')[:4]
lifestyle_events = Event.objects.all().filter(category='lifestyle', status = True).values('id','event_title').order_by('-id')[:4]
上面的代碼不包含有關登錄用戶的任何信息,現在我必須編寫一個代碼,我必須在其中獲取登錄用戶的數據。
from models import Event, Ticket_Cart_details
def get_base_content(request):
music_events = Event.objects.all().filter(category='music', status = True).values('id','event_title').order_by('-id')[:4]
sports_events = Event.objects.all().filter(category='sports', status = True).values('id','event_title').order_by('-id')[:4]
experience_events = Event.objects.all().filter(category='experience', status = True).values('id','event_title').order_by('-id')[:4]
lifestyle_events = Event.objects.all().filter(category='lifestyle', status = True).values('id','event_title').order_by('-id')[:4]
if request.user.is_authenticated():
current_cart_products = Ticket_Cart_details.objects.all().filter(user_id=request.user.id, session_id=request.session.session_key)
current_cart_products = Ticket_Cart_details.objects.all().filter(session_id=request.session.session_key)
在上面的代碼中,“請求”將不起作用,那么我怎樣才能使用這個獲取登錄用戶的記錄
您很好地使用了請求,但是當您使用上下文處理器時,您必須返回所有您想要的數據。 例如:
def get_base_content(request):
music_events = Event.objects.all().filter(category='music', status=True).values('id','event_title').order_by('-id')[:4]
sports_events = Event.objects.all().filter(category='sports', status=True).values('id','event_title').order_by('-id')[:4]
return {"music_events": music_events,
"sports_events": sports_events ,
}
此外,對於用戶不允許或未登錄的問題,您必須使用匿名數據或類似的方式處理它。
def get_base_content(request):
if not request.user:
music_events = 'none'
sports_events = 'none'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.