У меня есть модель профиля пользователя с пользователем (ForeignKey) и user_timezone (CharField). На моей странице шаблона есть раскрывающийся список, который позволяет пользователю выбирать свой часовой пояс, отправлять и все работает отлично. За исключением того, что мне нужно жестко закодировать pk. Я не могу понять, как получить текущего пользователя?Django Custom tag tag & get pk из базы данных
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])
Это было, я не был уверен, как для передачи запроса. После 2 дней попыток все под солнцем было 2 коротких строки кода. Меньше - больше. – Dunwitch