2016-07-29 12 views
2

In einem django Modell habe ich ein FeldWie man Django Form Override-Modell machen?

state = models.CharField(max_length=100, blank=True, null=True) 

Und ich will diese maximale Länge von 100 im Modell und Datenbank halten. Aber wenn ich ein HTML-Formular angezeigt werden, möchte ich seine maxlength bis 2.

ich dies tun begrenzen:

class EditMyThingForm(ModelForm): 
    class Meta: 
     model = MyThing 
     fields = [ 'state' ] 
     widgets = { 'state': forms.TextInput(attrs={'maxlength': 2}) } 

Aber egal was ich tue, maxlength ist 100! Überwiegt das Formular das Modell nicht ernsthaft?

+0

Wenn Sie sagen, 'egal was ich tue, maxlength ist 100', sprechen Sie über die tatsächliche HTML-Ausgabe oder die Formularvalidierung? –

+0

Was HTML macht '{{form}}' render? –

+0

tatsächliche HTML hatte maxlength = 100 – Colin

Antwort

2

Try es so außer Kraft zu setzen :)

from django import forms 


class EditMyThingForm(forms.ModelForm): 
    state = forms.CharField(label='State', widget=forms.Textarea, max_length=2) 

    class Meta: 
     model = MyThing 
     fields = ('state',)