Доступ к полям ForeignKey другой модели

У меня есть проект на Django Rest Framework, где мне нужно получить доступ из Project к ProjectTemplate. Но между ними у меня есть модель Department, поэтому я могу соединиться с Department только через ForeignKey. Есть ли какое-нибудь решение, как я могу с этим справиться?

from django.db import models


class ProjectTemplate(models.Model):
    name = models.CharField(max_length=125)
    desc = models.TextField()

    def __str__(self):
        return self.name


class Department(models.Model):
    name = models.CharField(max_length=125)
    desc = models.TextField
    project_template = models.ForeignKey(ProjectTemplate, on_delete=models.SET_NULL, related_name='departments', null=True, blank=True, unique=True)

    def __str__(self):
        return self.name


class Project(models.Model):
    name = models.CharField(max_length=125)
    desc = models.TextField()
    is_visible = models.BooleanField(default=True)
    project_temp = models.ForeignKey(Department, to_field='name', on_delete=models.SET_NULL, null=True, blank=True)

    def __str__(self):
        return self.name

Project связан с Department, а Department связан с ProjectTemplate. Вы можете получить доступ к ProjectTemplate из Project

Решение:

def get_project_template(project_obj):
    department = project_obj.project_temp
    return department.project_template if (department and has_attr(department, 'project_template')) else None 

Сделайте что-нибудь подобное, это может вам помочь!

Вернуться на верх