Как перемещаться между моделями, имеющими одинаковый внешний ключ 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}}