ich habe gerade versucht eine Form mit einem ModelChoiceField zu bauen, aber irgendwie will das nicht so ganz klappen. Eine Fehlermeldung bekomme ich nicht, aber eine Select-Box wird auch nicht ausgegeben. Hier mal meine Codes der Form und dazugehörigem Template.
forms.py
Code: Alles auswählen
#-*- coding: utf-8; -*-
# Imports von Django
from django import forms
from models import Mainpages, Configuration, Videos
class ContactForm(forms.Form):
name = forms.CharField(max_length=200, error_messages={'required': 'Bitte Name eingeben!'})
email = forms.EmailField(error_messages={'required': 'Bitte E-Mail eingeben!'})
message = forms.CharField(widget=forms.Textarea, error_messages={'required': 'Bitte Nachricht eingeben!'})
test = forms.ModelChoiceField(queryset=Mainpages.objects.all(), empty_label="Bitte wählen...")
Code: Alles auswählen
{% extends "base.html" %}
{% block content %}
<h1>{{ content.ueberschrift }}</h1>
{% autoescape off %}
{{ content.text }}
{% endautoescape %}
<p><br /><strong>Kontaktformular</strong></p>
{% for field in form %}
{{ field.errors }}
{% endfor %}
<form action="/Kontakt" method="POST">
<table class="kontaktformular">
<tr>
<td>Name:*</td>
<td>{{ form.name }}</td>
</tr>
<tr>
<td>E-Mail:*</td>
<td>{{ form.email }}</td>
</tr>
<tr>
<td>Nachricht:*</td>
<td>{{ form.message }}</td>
</tr>
<tr>
<td>Test:*</td>
<td>{{ form.test }}</td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Abschicken" class="button" /></td>
</tr>
</table>
<p>Die mit * gekennzeichneten Felder sind Pflichtfelder.</p>
</form>
{% endblock %}
Code: Alles auswählen
def contact(request):
try:
...
# Kontaktformular auswerten
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
name = form.cleaned_data['name']
email = form.cleaned_data['email']
message = form.cleaned_data['message']
test = form.cleaned_data['test']
recipients = ['hpd@nimsky.de']
#send_mail(subject, message, email, recipients)
sender = "%s <%s>" % (name,email)
message = "%s" % (message)
msg = EmailMessage('Anfrage von intrinsischekompetenz.de', message, sender, recipients)
msg.send()
return render_to_response("ihre_nachricht.html", {"content": content, "navi": navi, "quicknavi": quicknavi, "metainfo": metainfo, "active_url": "Kontakt"})
else:
form = ContactForm()
# Seite über Template kontakt.html ausgeben
return render_to_response("kontakt.html", {"form": form, "content": content, "navi": navi, "quicknavi": quicknavi, "metainfo": metainfo, "active_url": "Kontakt"})
# 404 Exceptions auffangen (und werfen)
except Mainpages.DoesNotExist, dne:
raise Http404