Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 14, 2010 14:00:08

IgoPog
От:
Зарегистрирован: 2010-11-02
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Связи между сущностями

Всем привет.
Я хочу вывести на экран все связи конкретного файла. Т.е. что вот этот файл связан с этим и этим модулем, которые связаны с этим Part (см ниже)

Есть модель:

class Part(models.Model):
title = models.CharField(max_length=50)

class Module(models.Model):
title = models.CharField(max_length=50)
courses = models.ManyToManyField(Part)

class File(models.Model):
title = models.CharField(max_length=50)
file = models.FileField(upload_to='content_load')
timestamp = models.DateTimeField(auto_now_add=True, blank=True)
modules = models.ManyToManyField(Module)
В urls.py после заполнения форсы поиска файла написал:
#urls.py
from django.views.generic.list_detail import object_list, object_detail
from my_proj.models import File, Module, Part

create_info_file = {'model': File}
display_info_file = {'queryset': File.objects.all().select_related()}

urlpatterns = patterns('', url(r'^search/file_search/(?P<object_id>\d+)/$', object_detail, display_info_file),)
и в Шаблоне:
#file_detail.html

{% block content %}
<h1>{{ object }}</h1>
<p>Uploadvideo date: {{ object.timestamp|date:"l, F jS" }}</p>
<pre>{{ object.modules }}</pre>
{% endblock %}
В итоге выдает:
<django.db.models.fields.related.ManyRelatedManager object at 0x032E1B50>
- это в том поле, куда я хочу вывести все отношения этого файла.
Вопрос - как мне все же получить и вывести все взаимосвязи объекта file?

Всем спасибо!



Офлайн

#2 Дек. 14, 2010 14:07:27

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Связи между сущностями

{% for module in object.modules %}
{{ module }}
{% endfor %}

Офлайн

#3 Дек. 14, 2010 14:12:35

IgoPog
От:
Зарегистрирован: 2010-11-02
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Связи между сущностями

Ferroman
Спасибо

Уже сделал, почти так же:

{% for file in object.modules.all %}
<ul>
<li>{{ file}}</li>
</ul>
{% endfor %}



Офлайн

#4 Дек. 14, 2010 14:20:14

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Связи между сущностями

Именно. Только делать выборку в урлах как-то не по-MVC-шному. Я бы сделал метод в модели типа get_modules.
Да и называть модель File то же черевато.

Офлайн

#5 Дек. 14, 2010 14:23:30

IgoPog
От:
Зарегистрирован: 2010-11-02
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Связи между сущностями

Ferroman
Не подскажите, а как глибину задать? Просто в моей модели File ссылается на Module, а вот этот конкретный модуль на Part. Как бы за один присест вывести и все модули к которым относится файл и все Part к которым относится найденный модуль (а значит и тот же файл имеет отношение к этой Part)?



Офлайн

#6 Дек. 14, 2010 15:28:45

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Связи между сущностями

За один присест - никак.
Хотя мне трудно рассуждать о правильности модели вообще - я же не знаю какую предметную область вы так выражете.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version