Условно в модели - PullRequest
       2

Условно в модели

0 голосов
/ 10 мая 2019

быстрый вопрос. Я борюсь с написанием условного в модели. Если я использую код ниже, я получаю желаемый файл .png, но я бы хотел указать, что if tripName == 'russia', чем сделать условие. Однако, когда я добавляю этот строчный код, он сразу переходит к остальному. Есть идеи?

Обновлен код!

tripImages = (
    ("Russia"),
    ("Italy"),
    ("France"),
)

class Trip(models.Model):

tripName = models.CharField(max_length=64)
tripLogo = models.ImageField(default="default_trip.png", upload_to='trip_pics')

def save(self, *args, **kwargs):
    super().save(*args, **kwargs)

    if self.tripName in tripImages:
        self.tripLogo = '{}.png'.format(self.tripName.lower())
    else:
        pass

    tripImg = Image.open(self.tripLogo)
    print(self.tripLogo)


    if tripImg.height > 300 or tripImg.width > 300:
        output_size = (300, 300)
        tripImg.thumbnail(output_size)
        tripImg.save()

Вот мой код print добавлена ​​ли эта функция, и кажется, что да. Имя изменено, но изображение не поменяно местами. Есть идеи?

Ответы [ 2 ]

2 голосов
/ 10 мая 2019

Я бы посоветовал вам реализовать это условие, переопределив метод save () для модели Django.

Проверьте этот стекопоток ответ

Ну, чтобы сделать это немного более простым

Класс поездки (моделей. Модель):

tripName = models.CharField(max_length=64)
    tripLogo = models.ImageField(upload_to='trip_pics')

def save(self, *args, **kwargs):
    tripName = getattr(self, 'tripName')
    if tripName in tripImages:
        self.tripLogo = "{}.png".format(tripName.lower())
    else:
        self.tripLogo = "default_trip" 
    super(Model, self).save(*args, **kwargs)
0 голосов
/ 10 мая 2019

Как вы проверяете, что имя изменено?Вы должны быть уверены в этом, иначе блок if будет пропущен.

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