Как перемещаться между моделями, имеющими одинаковый внешний ключ sql

как я могу динамически перемещаться между модалами, которые имеют одинаковый внешний ключ?

Скажем, у меня есть мастера, их посты и таблицы деталей. Пост и подробная таблица имеют fk к писателю, теперь мой вопрос в том, могу ли я перемещаться от поста к fk писателю, а затем от fk писателя к подробной таблице динамически

{{post.writer.detail}

существует ли что-то подобное, что можно реализовать в html

Один из способов сделать это - добавить метод свойства в класс модели и обращаться к нему в шаблоне.

Например:

class Writer(models.Model):
    # some properties
    
    @property
    def get_detail(self):
        # if detail objects does not exist it throws an error
        return Detail.objects.get(writer__id=self.id) 
     

class Detail(models.Model):
    writer = models.ForeignKey(Writer,...)
    # some properties

class Post(models.Model):
    writer = models.ForeignKey(Writer,...)
    # some properties
    

в вашем шаблоне {{post.writer.get_detail}}

Второй метод: Если ваш FK уникален в таблице деталей, вы также можете использовать обратный поиск в вашем шаблоне, как это {{post.writer.detail_set.0}}

В случае, если FK уникален, рассмотрите возможность использования OneToOneField и вы сможете получить доступ к детали {{post.writer.detail}}

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