Django. Как я могу получить данные для авторизированного пользователя и вывестb в template?

Имеются модели подписчика и подписки, как вывести данные из модели Subscription (соответственно поля end_date, start_date, subscription_status),через модель UserMembership, для авторизированного пользователя?

Нужны данные {{ subscription.end_date }}, {{ subscription.start_date }} и {{ subscription.subscription_status }}для авторизированного пользователя.

models.py

class Membership(models.Model):
    slug = AutoSlugField(populate_from=['membership_type', 'created'])
    membership_type = models.CharField(
        choices=MEMBERSHIP_CHOICES,
        default='Юзер',
        max_length=30, verbose_name="Название вида подписки")
    price = models.IntegerField(default=15, verbose_name="Стоимость подписки")
    created = models.DateTimeField(auto_now_add=True, verbose_name="Время создания")

    def __str__(self):
        return self.membership_type

    class Meta:
        verbose_name = "Вид подписки"
        verbose_name_plural = "Виды подписок"
        ordering = ('created',)


class UserMembership(models.Model):
    slug = AutoSlugField(populate_from=['user', 'membership', 'created'])

    user = models.OneToOneField(
        settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    membership = models.ForeignKey(
        Membership, on_delete=models.SET_NULL, null=True)
    created = models.DateTimeField(auto_now_add=True, verbose_name="Время создания")

    def __str__(self):
        return self.user.username

    class Meta:
        verbose_name = "Пользователь организации"
        verbose_name_plural = "Пользователи организации"
        ordering = ('created',)


SUBSCRIPTION_STATUS_CHOICES = (
    # ('Ent', 'ent'),
    ('СПЛАЧЕНА', 'СПЛАЧЕНА'),
    ('НЕ СПЛАЧЕНА', 'НЕ СПЛАЧЕНА'),
)

delta= timedelta(days=180)




class Subscription(models.Model):
    slug = AutoSlugField(populate_from=['user_membership', 'created'])

    user_membership = models.ForeignKey(
        UserMembership, on_delete=models.CASCADE, verbose_name="Пользователь")
    subscription_status = models.CharField(
        choices=MEMBERSHIP_CHOICES,
        default='НЕ СПЛАЧЕНА',
        max_length=30, verbose_name="Название статуса")

    start_date = models.DateTimeField(auto_now=False, null=True, verbose_name="Дата начала подписки")
    end_date = models.DateTimeField(blank=True, null=True, verbose_name="Дата окончания подписки")
    active = models.BooleanField(default=False, verbose_name="Активный")
    created = models.DateTimeField(auto_now_add=True, verbose_name="Время создания")





    def __str__(self):
        return self.user_membership.user.username

    class Meta:
        verbose_name = "Подписчик"
        verbose_name_plural = "Подписчики"
        ordering = ('created',)

Ответы (1 шт):

Автор решения: Миша
{% if request.user.is_authenticated %}
    ....
{% endif %}

request.user - хранит данные о текущем пользователе

→ Ссылка