Передача дополнительных аргументов с помощью функции запуска kwarg - PullRequest
0 голосов
/ 05 мая 2020

Можно ли передать дополнительные аргументы или kwargs в модели photo_1 -> upload_to? Я хочу передать дополнительные данные (размер) для подготовки собственного имени файла. Я пробовал

def upload_to_id_image(self, filename, size=""):
        fname = filename.split('/')[-1]
        return f'thumbs/{fname}'


    photo_1 = ProcessedImageField(
        null=True, blank=True,
        processors=[Thumbnail(192)],
        options={'quality': 85},
        upload_to=upload_to_id_image(size="192")
    )

, но, похоже, не работает

вся модель:


class Photo(AddedUpdatedModel):

    name = models.CharField(max_length=128, null=True, blank=True)
    file = ThumbnailerImageField(upload_to='temp/')
    photo_type = models.ForeignKey(PhotoType, on_delete=models.PROTECT, null=True, blank=True, default=None)

    def upload_to_id_image(self, filename):
        fname = filename.split('/')[-1]
        return f'thumbs/{fname}'

    photo_1 = ProcessedImageField(
        null=True, blank=True,
        processors=[Thumbnail(192)],
        options={'quality': 85},
        upload_to=upload_to_id_image
    )

    def __str__(self):
        return self.name

    def save(self, *args, **kwargs):
        if not self.photo_1:
            self.photo_1 = self.file.file
        super().save(*args, **kwargs)

Я ищу решение, чтобы передать размер в модели выше

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...