@justdani

Изменение upload_to у ImageField?

Друзья, суть вопроса. имеется модель:
class ItemChat(models.Model):

    class Meta:
        verbose_name = "ItemChat"
        verbose_name_plural = "ItemChats"

    def __str__(self):
        pass

    item = models.ForeignKey(Order, on_delete=models.SET_NULL, blank=True, null=True)
    personal = models.ForeignKey(PersonalProfile, on_delete=models.SET_NULL, blank=True, null=True)
    client = models.ForeignKey(ClientProfile, on_delete=models.SET_NULL, blank=True, null=True)
    comment = models.CharField(blank=True, null=True, max_length=50)
    design_img = models.ImageField(blank=True, null=True, upload_to='')


каким образом я могу указать upload_to в зависимости от экземляра этого класса, а именно мне необходмо взять поле item.client(выход естественно string) и положить его в upload_to
  • Вопрос задан
  • 443 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
from os.path import splitext

class ItemChat(models.Model):
    ...

    design_img = models.ImageField(blank=True, null=True,
        upload_to=lambda obj, name: str(obj.item.client) + splitext(name)[1])
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы