Django: папка для динамического хранения моделей. ImageField - PullRequest
0 голосов
/ 27 марта 2019

В моей модели есть ImageField, в котором я хочу динамически сохранять URL-адрес изображения в зависимости от пользовательской сессии var. Воображаемый как это:

logo = models.ImageField(null=True, upload_to = 'empresas/'+codEmp+'/logo/')

И переменная codEmp является переменной сеанса: request.session['codEmp']

Поэтому, если codEmp пользователя является, например, 'McDonalds', он должен сохранить следующий путь: 'empresas / McDonalds / logo / imaginary_picture.jpg'.

Я пытался init , но я не могу закончить это, и я не уверен, будет ли это работать.

class Empresa(models.Model):
    def __init__(self, filter_on, *args, **kwargs):
        super(Empresa, self).__init__(*args, **kwargs)
        codEmp = filter_on
        logo = models.ImageField(null=True, upload_to = 'empresas/'+codEmp+'/logo/')

Я пытался сделать это в ModelForm, но, похоже, forms.ImageField не имеет атрибута upload_to.

1 Ответ

2 голосов
/ 27 марта 2019

Параметр upload_to может быть вызываемым, который может принимать 2 параметра: экземпляр и имя файла . Смотри здесь .

...