Добавление класса css при вводе файла виджета не имеет эффекта

Попытка добавить css class в forms.ImageField, не имеет эффекта.

model.py:-

class ProductImages(models.Model):
    ...    
    image_file_w200_png = models.ImageField(
        
        verbose_name = "Imagens",
        upload_to=upload_to_image_file_w200_png,
        null=True,
        blank=True,
        default='magickhat-profile.jpg'
    )
    ...

forms.py:-

class ProductImagesForm(ModelForm):
    image_file_w200_png = forms.ImageField(widget=forms.FileInput(attrs={'class': 'image_add_product'}))

    class Meta:
        model = ProductImages
        fields = ['image_file_w200_png']

Этот код не имеет эффекта, чего не хватает?

Измените имя вашего image_file = forms.ImageField() на image_file_w200_png. В настоящее время вы определяете новое поле, а не изменяете существующее, потому что имена не совпадают.

Вы также можете определить его по-другому в разделе class Meta:. Вы можете добавить словарь под названием widgets и написать его следующим образом:

class Meta:
   model = ProductImages
   fields = ['image_file_w200_png']
   widgets = {'image_file_w200_png':forms.FileInput(attrs={'class':'image_add_product'})}
Вернуться на верх