Уведомления

Группа в Telegram: @pythonsu

#1 Март 3, 2011 16:53:25

dissdoc
От:
Зарегистрирован: 2009-12-12
Сообщения: 273
Репутация: +  0  -
Профиль   Отправить e-mail  

Завязась модель саму на себя

Всем привет. Оптимизирую класс “ссылки”.
Появилась проблема. Модель такая (максимально упрощена)

class Links(models.Model):
title = models.CharField(max_length=150)
Как мне завязать ее на саму себя. Т.е. пользователь набивает кучу ссылок:
link1, link2, link3, link4, link5
Хочу, добавить еще поле одно, в котором можно указать зависимость. Чтобы получились и ссылки и подссылки. Я же знаю допустим, что к link1 относятся ссылки link2 и link3, а к link4 относится link5



Офлайн

#2 Март 3, 2011 17:28:47

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Завязась модель саму на себя

http://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ForeignKey

To create a recursive relationship – an object that has a many-to-one relationship with itself – use models.ForeignKey('self').
dissdoc, пожалуйста научитесь уже читать документацию.



Офлайн

#3 Март 4, 2011 18:23:39

dissdoc
От:
Зарегистрирован: 2009-12-12
Сообщения: 273
Репутация: +  0  -
Профиль   Отправить e-mail  

Завязась модель саму на себя

Появились проблемы при выводе в шаблон. Смотрите, как вывожу это дерево

{% for menu in links_list %}
{{ menu.title }}<br>
{% for submenu in menu.menu_set.all %}
{{ submenu.title }}
{% endfor %}
{% endfor %}
Но что-то не то…



Офлайн

#4 Март 4, 2011 21:29:09

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Завязась модель саму на себя

dissdoc
Но что-то не то…
Вы нам предлагаете угадать “что”?



Офлайн

#5 Март 5, 2011 09:55:03

dissdoc
От:
Зарегистрирован: 2009-12-12
Сообщения: 273
Репутация: +  0  -
Профиль   Отправить e-mail  

Завязась модель саму на себя

Нет, не предлагаю. Не так выразился. Внутренний цикл не срабатывает. Проблема, почти уверен в строке menu.menu_set.all. А как тогда связанные области вытянуть иначе… Вроде логичная строчка… Но что тут не так - не понятно!..



Офлайн

#6 Март 5, 2011 10:51:53

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2267
Репутация: +  41  -
Профиль   Отправить e-mail  

Завязась модель саму на себя

возьми и проверь в консоли, в шаблоне ошибки модели ты не увидишь

Офлайн

#7 Март 5, 2011 12:26:20

dissdoc
От:
Зарегистрирован: 2009-12-12
Сообщения: 273
Репутация: +  0  -
Профиль   Отправить e-mail  

Завязась модель саму на себя

Говорит, нет такого аттрибута menu_set =\



Отредактировано (Март 5, 2011 12:27:36)

Офлайн

#8 Март 5, 2011 14:19:29

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Завязась модель саму на себя

Так вы модель покажите или будете её прятать под одеялом?

Скорей всего атрибут должен называться link_set.



Офлайн

#9 Март 9, 2011 08:52:45

dissdoc
От:
Зарегистрирован: 2009-12-12
Сообщения: 273
Репутация: +  0  -
Профиль   Отправить e-mail  

Завязась модель саму на себя

Александр Кошелев, именно link_set. =( Блин, какой я невнимательный…
Спасибо Вам огромное.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version