Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Bug] Classe não sendo aplicada ao forms de Nova Imagem

Estava seguindo o curso, até que na parte de criar o form de adicionar uma nova imagem, fiz como está na video aula e por algum motivo a classe não está sendo aplicada aos inputs.

from django import forms

from apps.gallery.models import Fotografia

class FotografiaForms(forms.ModelForm):
    class Meta:
        model = Fotografia
        exclude = ['publicada',]
        labels = {
            'name': 'Nome',
            'subtitle': 'Legenda',
            'category': 'Categoria',
            'description': 'Descrição',
            'data_fotografia': 'Data de Registro',
            'usuario': 'Usuário'

        }
        Widget = {
        'name': forms.TextInput(attrs={'class': 'form-control'}),
        'subtitle': forms.TextInput(attrs={'class':'form-control'}),
        'category': forms.Select(attrs={'class':'form-control'}),
        'description': forms.Textarea(attrs={'class':'form-control'}),
        'foto': forms.FileInput(attrs={'class':'form-control'}),
        'data_fotografia': forms.DateInput(
            format= '%d/%m/%Y',
            attrs={
            'type': 'date',
            'class':'form-control'
            }
        ),
        'usuario': forms.Select(attrs={'class': 'form-control'}),
        }
1 resposta
solução!

Oi Rafael, tudo bem?

Pelo código que você compartilhou, parece que há um pequeno erro de digitação que pode estar causando o problema. Em vez de Widget, deveria ser widgets (com "w" minúsculo).

Aqui está a correção:

from django import forms
from apps.gallery.models import Fotografia

class FotografiaForms(forms.ModelForm):
    class Meta:
        model = Fotografia
        exclude = ['publicada',]
        labels = {
            'name': 'Nome',
            'subtitle': 'Legenda',
            'category': 'Categoria',
            'description': 'Descrição',
            'data_fotografia': 'Data de Registro',
            'usuario': 'Usuário'
        }
        widgets = {
            'name': forms.TextInput(attrs={'class': 'form-control'}),
            'subtitle': forms.TextInput(attrs={'class':'form-control'}),
            'category': forms.Select(attrs={'class':'form-control'}),
            'description': forms.Textarea(attrs={'class':'form-control'}),
            'foto': forms.FileInput(attrs={'class':'form-control'}),
            'data_fotografia': forms.DateInput(
                format= '%d/%m/%Y',
                attrs={
                    'type': 'date',
                    'class':'form-control'
                }
            ),
            'usuario': forms.Select(attrs={'class': 'form-control'}),
        }

Essa pequena mudança deve fazer com que as classes CSS sejam aplicadas corretamente aos seus inputs.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.