2016-08-26 7 views
0

ich eine Form Klasse, die wie ..Django UpdateView bildet

#forms.py 

class ExampleForm(forms.Form): 
    color = forms.CharField(max_length=25) 
    description = forms.CharField(widget=forms.Textarea, max_lenght=2500) 

und meiner Meinung nach sieht wie folgt aussieht ..

#views.py 



class EditExample(UpdateView): 
model = Example 
fields = ['color', 'description'] 
template_name = 'example.html' 

def get_success_url(self): 
    pass 

Vorlage:

#example.html 
{% for field in form %} 
    {% if field.errors %} 
      <div class="control-group error"> 
       <label class="control-label">{{ field.label }}</label> 
       <div class="controls">{{ field }} 
        <span class="help-inline"> 
         {% for error in field.errors %}{{ error }}{% endfor %} 
        </span> 
       </div> 
      </div> 
      {% else %} 
       <div class="control-group"> 
       <label class="control-label">{{ field.label }}</label> 
       <div class="controls">{{ field }} 
        {% if field.help_text %} 
         <p class="help-inline"><small>{{ field.help_text }}</small></p> 
        {% endif %} 
       </div> 
    {% endif %} 
{% endfor %} 

Wenn die Vorlage gerendert wird, werden alle Felder korrekt angezeigt und ausgefüllt, aber die 'Beschreibung' erscheint nicht in einem Textarea, sondern in einem normalen Feld. Ich nehme an, dies liegt daran, dass UpdateView von 'model = something' und nicht von 'form = something' ausgeht.

ich versucht habe ..

#views.py 
class EditExample(UpdateView): 
    model = Example 
    form_class = Exampleform 
    template_name = 'example.html' 

    def get_success_url(self): 
     pass 

aber ich habe eine Django-Fehler sagen "init() bekam ein unerwartetes Stichwort Argument 'instance'.

Gibt es eine Möglichkeit erfolgreich das bekommen Beschreibung zu machen, in einem Textarea mit Updateview? Wenn nicht, wie würde ich dies zu erreichen?

Dank!

Antwort

1

Ihr Formular muss von forms.ModelForm erben, nicht die Basis Form-Klasse.

+0

Ich habe ein ModelForm erstellt und es mit 'form_class =' ​​in die Ansicht gesteckt. Alles funktioniert gut, aber ich bekomme immer noch nicht die Beschreibung in einem Textbereich Widget angezeigt. Es ist ein Schmerz in den Hintern zu versuchen, eine Beschreibung zu bearbeiten, die Hunderte von Wörtern lang in einer normal großen Form ist! Noch mehr Ideen? Vielen Dank –

Verwandte Themen