From 374fbf4999fdacdf74c04f9cc5f10a187ba67820 Mon Sep 17 00:00:00 2001 From: Emilie Date: Fri, 28 Oct 2016 18:32:29 +0200 Subject: [PATCH] Media : list related content --- .../migrations/0012_auto_20161028_1812.py | 21 +++++++++++++++++++ app/organization/media/models.py | 2 +- app/organization/media/views.py | 12 ++++++++++- app/templates/media/playlist_detail.html | 5 +++++ 4 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 app/organization/media/migrations/0012_auto_20161028_1812.py diff --git a/app/organization/media/migrations/0012_auto_20161028_1812.py b/app/organization/media/migrations/0012_auto_20161028_1812.py new file mode 100644 index 00000000..6cee6789 --- /dev/null +++ b/app/organization/media/migrations/0012_auto_20161028_1812.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.10 on 2016-10-28 16:12 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-media', '0011_auto_20161014_1136'), + ] + + operations = [ + migrations.AlterField( + model_name='playlistrelated', + name='playlist', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='playlist_related', to='organization-media.Playlist', verbose_name='playlist'), + ), + ] diff --git a/app/organization/media/models.py b/app/organization/media/models.py index 5abdc414..0f568781 100644 --- a/app/organization/media/models.py +++ b/app/organization/media/models.py @@ -135,7 +135,7 @@ class PlaylistMedia(models.Model): class PlaylistRelated(models.Model): """Playlist inline""" - playlist = models.ForeignKey(Playlist, verbose_name=_('playlist'), blank=True, null=True, on_delete=models.SET_NULL) + playlist = models.ForeignKey(Playlist, verbose_name=_('playlist'), related_name='playlist_related', blank=True, null=True, on_delete=models.SET_NULL) class Meta: verbose_name = _('playlist') diff --git a/app/organization/media/views.py b/app/organization/media/views.py index 599cf9ce..95358fba 100644 --- a/app/organization/media/views.py +++ b/app/organization/media/views.py @@ -4,6 +4,7 @@ from organization.media.models import * from organization.core.views import * from dal import autocomplete from dal_select2_queryset_sequence.views import Select2QuerySetSequenceView +from django.core.exceptions import FieldDoesNotExist class PlaylistDetailView(SlugMixin, DetailView): @@ -11,9 +12,18 @@ class PlaylistDetailView(SlugMixin, DetailView): model = Playlist template_name='media/playlist_detail.html' context_object_name = 'playlist' - + def get_context_data(self, **kwargs): + self.related_objects = [] context = super(PlaylistDetailView, self).get_context_data(**kwargs) + related_model = PlaylistRelated._meta.get_fields() + related_playlist = self.object.playlist_related.all() + for rm in related_model: + for rp in related_playlist: + if hasattr(rp, rm.name): + self.related_objects.append(getattr(rp, rm.name)) + + context['related_objects'] = self.related_objects return context diff --git a/app/templates/media/playlist_detail.html b/app/templates/media/playlist_detail.html index e686912f..7bf636bf 100644 --- a/app/templates/media/playlist_detail.html +++ b/app/templates/media/playlist_detail.html @@ -65,4 +65,9 @@ {{ playlist.content|safe }} + {% for related_object in related_objects %} + {{ related_object }} +
+ {% endfor %} + {% endblock %} -- 2.39.5