2016-08-04 55 views
-1

Die Frage ist: Können wir das Formular in die Vorlage mit mehr als 2 Feldern senden (ich bin sicher, dass es möglich sein sollte). Bitte, Beratung, was das Problem sein könnte:Django-Vorlagen {% block content%} kann nur zwei Formularfelder enthalten?

Ich habe das Formular mit drei Feldern erstellt:

class Email(forms.Form): 
    owner = forms.ChoiceField(choices=['Tyler', 'Aleks']) 
    title = forms.CharField(max_length=150, label='Name the stuff') 
    file = forms.FilePathField(path=path, label='Enter the path') 

Danach betrieb sie in Sicht, wo ich Form Objekt an die Vorlage bin das Senden:

Hier
def mail_distribution(request): 
    if request.method == 'POST': 
     form = Email(request.POST) 
     if form.is_valid(): 
      render(request, 'general/email.html', {'form': form}) 
    else: 
     form = Email() 
    return render(request, 'general/email.html', {'form': form}) 

ist die Vorlage selbst:

{% extends 'general/base.html' %} 

{% block content %} 
    <form class="form-vertical" action="mail_distrib" role="form" method="post"> 
      {% csrf_token %} 
      <div class="form-group" style="display: inherit"> 
       <center> 
        {{form.title}} 
       </center> 
      </div> 
      <div class="form-group" style="display: inherit"> 
       <center> 
        {{form.owner}} 
       </center> 
      </div> 
      <div class="form-group" style="display: inherit"> 
       <center> 
        {{form.file}} 
       </center> 
      </div> 
      <center><input type="submit" value="OK"></center> 
    </form> 
{% endblock %} 

Danach erhalte ich die Fehlermeldung:

* Fehler bei der Vorlage Rendering

In Vorlage E: \ Tyler \ Projects \ Web_dev \ dj_api \ Scripts \ Distribution \ general \ Templates \ general \ email.html, Fehler in Zeile 13 zu viele Werte entpacken (erwartete 2)

Line13 - 13 {{form.owner}} *

+0

Sind Sie sicher, dass Sie posten Sie Ihren gesamten Code? Sieht aus, als ob du versuchst, eine E-Mail zu senden, und da läuft etwas schief. Warum rendern Sie ein Formular, wenn das Formular gültig ist? –

+0

Bitte zeigen Sie den kompletten Traceback an. Die Anzahl der Formularfelder ist hier nicht das Problem. – Alasdair

+0

@Alasdair bearbeitet die Frage, danke! –

Antwort

1

ändern choices Attribut in Inhaber Felder wie diese

owner = forms.ChoiceField(choices=[('Tyler','Tyler'), ('Aleks', 'Aleks')]) 
+0

Cool, das funktioniert! Vielen Dank –