Django - Slug применяется к файлу изображения, но предназначен для объекта
class Project(models.Model):
owner = models.ForeignKey(Profile, null = True, blank = True, on_delete = models.CASCADE)
title = models.CharField(max_length = 200)
description = models.TextField(null = True, blank = True)
featured_image = models.ImageField(null = True, blank = True,
upload_to = 'projects/', default = "projects/default.jpg")
demo_link = models.CharField(max_length = 2000, null = True, blank = True)
source_link = models.CharField(max_length = 2000, null = True, blank = True)
demo = models.BooleanField(default = False, null = True, blank = True)
tags = models.ManyToManyField('Tag', blank = True)
vote_total = models.IntegerField(default = 0, null = True, blank = True)
vote_ratio = models.IntegerField(default = 0, null = True, blank = True)
created = models.DateTimeField(auto_now_add = True)
slug = models.SlugField(default = '', editable = False, max_length = 200, null = False)
id = models.UUIDField(default = uuid.uuid4, unique = True, primary_key = True, editable = False)
def __str__(self):
return self.title
class Meta:
ordering = ['-vote_ratio', '-vote_total', 'title']
unique_together = [['slug', 'owner']]
@property
def imageURL(self):
try:
url = self.featured_image.url
except:
url = ''
return url
@property
def reviewers(self):
queryset = self.review_set.all().values_list('owner__id', flat = True)
return queryset
@property
def getVoteCount(self):
reviews = self.review_set.all()
upVotes = reviews.filter(value = 'up').count()
totalVotes = reviews.count()
ratio = (upVotes / totalVotes) * 100
self.vote_total = totalVotes
self.vote_ratio = ratio
self.save()
def get_absolute_url(self):
kwargs = {
'slug' : self.slug,
'name' : self.owner.slug,
}
return reverse('user-profile', kwargs = kwargs)
def save(self, *args, **kwargs):
self.slug = slugify(self.title)
super().save(*args, **kwargs)
Я полагаю, что это как-то связано с методом сохранения, но он не должен добавлять slug к featured_image. Даже если я выбираю уже существующее изображение без slug, slug применяется. В Forms.py упоминается featured_image, но виджет не изменяется. Я могу включить представления, но опять же, атрибут featured_image не имеет прямого доступа или изменения.
Будем признательны за любую помощь, чтобы направить меня в правильном направлении.