есть следующий класс:
class Topics(db.Model):
tablename = 'topics'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String(140))
parent = db.Column(db.Integer, default=0, comment="ID родительской темы(если есть)")
Если я допишу следующую строчку,
def str(self):
return f'{self.name}'
то можем в admin получить название классов. ОДнако у меня данные имеют следующий характер:
id name parent
1 Математика 0
2 Алгебра 1
3 многочлены 2
Т.е. каждый последующий член является как бы подпапкой предыдущего, мне хотело бы,чтобы имя писалось вместе с именем родителя, то есть:
математика
математика -алгебра
математика-алгебра-многочлены.
Скажите: как решить данную проблему?
Никто не мешает тебе сделать внешний ключ Topic'а на самого себя и ты тогда сможешь рекурсивно бегать по родителям, но по производительности это будет не то, чтобы шустро, плюс, могут возникнуть проблемы с поиском по родителям.
Вот тут я туплю. Как это реализовать?
https://ru.wikipedia.org/wiki/%D0%92%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D0%B9_%D0%BA%D0%BB%D1%8E%D1%87 - это про то, как они работают в рсубд. Здесь базис по связям в sqlalchemy: https://docs.sqlalchemy.org/en/14/orm/tutorial.html?highlight=relationship#building-a-relationship
Обсуждают сегодня