[python] Cambia la larghezza degli elementi del modulo creati con ModelForm in Django


0 Answers

Ottima risposta di zuber, ma credo che ci sia un errore nel codice di esempio per il terzo approccio. Il costruttore dovrebbe essere:

def __init__(self, *args, **kwargs):
    super(ProductForm, self).__init__(*args, **kwargs) # Call to ModelForm constructor
    self.fields['long_desc'].widget.attrs['cols'] = 10
    self.fields['long_desc'].widget.attrs['cols'] = 20

Gli oggetti Field non hanno attributi 'attrs', ma i loro widget lo fanno.

Question

Come posso modificare la larghezza di un elemento del modulo area di testo se ho utilizzato ModelForm per crearlo?

Ecco la mia classe di prodotto:

class ProductForm(ModelForm):
    long_desc = forms.CharField(widget=forms.Textarea)
    short_desc = forms.CharField(widget=forms.Textarea)
    class Meta:
        model = Product

E il codice del modello ...

{% for f in form %}
    {{ f.name }}:{{ f }}
{% endfor %}

f è l'elemento reale della forma ...




Related