Модель Django: определить связанное имя на основе переменной - PullRequest
0 голосов
/ 14 июня 2019

Привет, я разрабатываю приложение Календарь с django, и у меня есть некоторые проблемы с определением «связанного имени» в моем отношении oneToOne.

У каждого человека будет объект Calendar, связанный с его профилем.Каждый календарь позволит пользователю получить доступ к «объектам года».

Например, если я хочу получить доступ к 2019 году, я буду делать calendar.year2019 и calendar.year2020 на 2020 год ...

Вот моя проблема: я не знаю, какопределить связанное имя для доступа к такому году.Я хотел бы определить related_name, прочитав значение, хранящееся в year_number, но замена значения related_name на year_number не работает.

Вот мои два класса

Календарь классов:

class Calendar(models.Model):
    profil = models.OneToOneField(Profil, on_delete=models.SET_NULL, blank=True, null=True)

Год обучения:

class Year(models.Model):
    year_number = models.IntegerField(blank= False, null = False)
    calendar = models.OneToOneField(Calendar, on_delete=models.SET_NULL, blank=False, null=True, related_name='+')

    week_number_1 = models.OneToOneField(Week, on_delete=models.SET_NULL, blank=True, null=True, related_name='week1')
    week_number_2 = models.OneToOneField(Week, on_delete=models.SET_NULL, blank=True, null=True, related_name='week2')
    ...
    week_number_53 = models.OneToOneField(Week, on_delete=models.SET_NULL, blank=True, null=True, related_name='week53')

Знаете ли вы, как этого добиться?

...