Forms

Form: Checkliste

  • forms.py erstellen
  • ModelForm für Model erstellen
  • Update-View erstellen (display, save, errors)
  • urls.py updaten
  • Template erstellen

forms.py und ModelsForm

core/forms.py

from django import forms
from core.models import Contact

class ContactForm(forms.ModelForm):
    class Meta:
        model = Contact
        fields = ['name']

Note

Man KANN jedes Feld einzeln definieren. Das machen wir aber nicht.


Form: die View Dazu

core/views.py

from core.forms import ContactForm
def add_contact(request):
    context = RequestContext(request)
    if request.method == 'POST':
        form = ContactForm(request.POST, request.FILES)
        if form.is_valid():
            form.save(commit=True)
            return index(request)
        else:
            print form.errors
    else:
        form = ContactForm()
    return render(request, 'add_contact.html', {'form': form})

Form: URL-Mapping

core/urls.py

url(r'^contact/$', views.add_contact, name='add_contact'),

Form: Das Template

<form id="cform" method="post" enctype="multipart/form-data">
    {% csrf_token %}
    {% for hidden in form.hidden_fields %}
        {{ hidden }}
    {% endfor %}
    {% for field in form.visible_fields %}
        {{ field.errors }}
        {{ field.help_text }}
        {{ field }}
    {% endfor %}
    <input type="submit" name="submit" value="Contact Me!" />
</form>