From 547a41f33ba4c629e7440753b91de075a1f406e8 Mon Sep 17 00:00:00 2001 From: j Date: Mon, 24 Mar 2025 16:03:18 +0000 Subject: [PATCH] add option for multiple galleries per content --- ...alleries_alter_content_gallery_and_more.py | 70 +++++++++++++++++++ content/models.py | 6 +- content/templates/content.html | 3 + 3 files changed, 75 insertions(+), 4 deletions(-) create mode 100644 content/migrations/0015_content_galleries_alter_content_gallery_and_more.py diff --git a/content/migrations/0015_content_galleries_alter_content_gallery_and_more.py b/content/migrations/0015_content_galleries_alter_content_gallery_and_more.py new file mode 100644 index 0000000..4555c25 --- /dev/null +++ b/content/migrations/0015_content_galleries_alter_content_gallery_and_more.py @@ -0,0 +1,70 @@ +# Generated by Django 4.2.18 on 2025-03-24 15:59 + +from django.db import migrations, models +import django.db.models.deletion +import sortedm2m.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ("photologue", "0013_alter_watermark_image"), + ("content", "0014_migrate_shortname"), + ] + + operations = [ + migrations.AddField( + model_name="content", + name="galleries", + field=sortedm2m.fields.SortedManyToManyField( + blank=True, + help_text=None, + related_name="reverse_content", + to="photologue.gallery", + ), + ), + migrations.AlterField( + model_name="content", + name="gallery", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="content", + to="photologue.gallery", + ), + ), + migrations.AlterField( + model_name="content", + name="photo", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="main_photo", + to="photologue.photo", + ), + ), + migrations.AlterField( + model_name="content", + name="related_content", + field=sortedm2m.fields.SortedManyToManyField( + blank=True, + help_text=None, + related_name="reverse_related_content", + to="content.content", + ), + ), + migrations.AlterField( + model_name="content", + name="view", + field=models.ForeignKey( + blank=True, + db_column="view", + editable=False, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to="content.views", + ), + ), + ] diff --git a/content/models.py b/content/models.py index 983fe2b..bbcf6e2 100644 --- a/content/models.py +++ b/content/models.py @@ -102,18 +102,17 @@ class Content(models.Model): featured = models.BooleanField(default=False) view = models.ForeignKey("Views", null=True, blank=True, db_column="view", editable=False, on_delete=models.SET_NULL) place = models.CharField(max_length=255, null=True, blank=True) - parents = models.ManyToManyField('Content', through='ContentContent', related_name="children") related_content = SortedManyToManyField('Content', blank=True, related_name='reverse_related_content') resources = models.ManyToManyField('Resources', through='ContentResource', related_name="content") gallery = models.ForeignKey(Gallery, null=True, blank=True, related_name="content", on_delete=models.SET_NULL) + galleries = SortedManyToManyField(Gallery, related_name="reverse_content", blank=True) # delete after migration + parents = models.ManyToManyField('Content', through='ContentContent', related_name="children") parentid = models.IntegerField(null=True, db_column='parentID', blank=True, editable=False) - # end of delte - def __str__(self): return self.title @@ -329,7 +328,6 @@ class ContentResource(models.Model): # managed = False db_table = 'content_resource' - class ContentTypes(models.Model): id = models.IntegerField(primary_key=True) name = models.CharField(max_length=255) diff --git a/content/templates/content.html b/content/templates/content.html index e2a7613..d05da67 100644 --- a/content/templates/content.html +++ b/content/templates/content.html @@ -30,6 +30,9 @@ {% include "opt.html" %} {% include "links.html" %} {% include "gallery.html" with gallery=content.gallery %} + {% for gallery in content.galleries.all %} + {% include "gallery.html" with gallery=gallery %} + {% endfor %} {% include "latest_content.html" %}