У меня есть модель профиля пользователя с пользователем (ForeignKey) и user_timezone (CharField).На моей странице шаблона есть выпадающий список, который позволяет пользователю выбрать свой часовой пояс, отправить и все работает нормально.За исключением того факта, что я должен жесткий код ПК.Я не могу понять, как получить текущего пользователя?
import pytz
import datetime
import time
from pytz import timezone
from django import template
from django.contrib.auth.models import User
from turnover.models import UserProfile
from django.shortcuts import get_object_or_404
register = template.Library()
class TimeNode(template.Node):
def __init__(self, format_string):
self.format_string = format_string
def render(self, context):
# Get the user profile and their timezone
profile = UserProfile.objects.get(pk=99) #<------ Hard Coded--
set_user_timezone = profile.user_timezone
# Set the Timezone
dt = datetime.datetime.fromtimestamp(time.time(), pytz.utc)
get_timezone = pytz.timezone(u'%s' % set_user_timezone)
profile_timezone = get_timezone.normalize(dt.astimezone(get_timezone)).strftime(self.format_string)
return profile_timezone
@register.tag(name="current_time")
def current_time(parser, token):
tag_name, format_string = token.split_contents()
return TimeNode(format_string[1:-1])