Hi, thanks my models.py:
from django.db import models
from stdimage import StdImageField
from django.utils.text import slugify
from django.urls import reverse
from django.utils.translation import gettext as _
import os
from . utils import path_and_rename, resize_and_autorotate
from django.conf import settings
from datetime import *
class Album(models.Model):
id = models.AutoField(primary_key=True)
album_order = models.PositiveBigIntegerField(null=True, blank=True, verbose_name=('Album order'))
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, verbose_name=_('Author') )
title = models.CharField(max_length=255, verbose_name=_('Title'))
content = models.TextField(verbose_name=_('Content'))
slug = models.SlugField(null=False, unique=True, max_length=255, verbose_name=_('Slug'))
status = models.BooleanField(default=0, verbose_name=_('Status'))
created = models.DateTimeField(auto_now_add=True, verbose_name=_('Created'))
updated = models.DateTimeField(auto_now=True, verbose_name=_('Updated'))
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('album', kwargs={'slug': self.slug})
def save(self, *args, **kwargs):
self.slug = slugify(self.title)
super().save(*args, **kwargs)
class Meta:
ordering = ['id']
class Photo(models.Model):
id = models.AutoField(primary_key=True)
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, verbose_name=_('Author'))
content = models.CharField(max_length=255, verbose_name=_('Content'))
album = models.ForeignKey(Album, on_delete=models.CASCADE, related_name='ALBUM')
photo = StdImageField(upload_to=path_and_rename, blank=True, render_variations= resize_and_autorotate, variations={
'large': (640, 480),
'thumbnail': (320, 220, True),
}, delete_orphans=True, verbose_name=_('Photo'))
photo_order = models.PositiveBigIntegerField(null=True, blank=True,verbose_name=('Photo order'))
status = models.BooleanField(default=0, verbose_name=_('Status'))
created = models.DateTimeField(auto_now_add=True, verbose_name=_('Created'))
updated = models.DateTimeField(auto_now=True, verbose_name=_('Updated'))
def delete(self, *args, **kwargs):
os.remove(os.path.join(settings.MEDIA_ROOT, self.photo.name))
super().delete(*args, **kwargs)
def save(self, *args, **kwargs):
return super(Photo, self).save(*args, **kwargs)
def __str__(self):
return f'{self.id}'
class Meta:
ordering = ['id']
solution models Photo and Album ?,
my album_order and photo_order
idea solution ?
thanks.
My elementary english from italian language old 40 year.