18. forms [Non-model based]
● Create `forms.py` in your Django Application
● import the Form class
● define what you’ll collect
19. forms [Non-model based]
from django import forms
class MessageForm(forms.Form):
number = forms.CharField()
text = forms.CharField()
20. Hooking up forms in Views
from form import MessageForm
def new_message(request):
form = MessageForm()
if request.method == “POST”:
form = MessageForm(request.POST)
if form.valid():
form.save() # save
else:
pass # handle errors!
return render_to_response(‘messages/new.html’, {‘form’:form},
RequestContext(request))
22. forms [Model based]
● Create `forms.py` in your Django Application
● import the Form class
● define what you’ll collect
23. forms [Model based]
from django import forms
from .models import Message
class MessageForm(forms.ModelForm):
model = Message
24. Hooking up forms in Views (similar)
from form import MessageForm
def new_message(request):
form = MessageForm()
if request.method == “POST”:
form = MessageForm(request.POST)
if form.valid():
form.save() # save
else:
pass # handle errors!
return render_to_response(‘messages/new.html’, {‘form’:form},
RequestContext(request))
27. Template inheritance
Base HTML file
e.g. base.html
Profile page
e.g. profile.html
Messages page
e.g. messages.html
28. Template inheritance
Base HTML file
e.g. base.html
Profile page
e.g. profile.html
Base HTML has your
site-wide designs and
you don’t have to repeat
the design on different
pages.
Messages page
e.g. messages.html
29. Template inheritance
Base HTML file
e.g. base.html
code sample...
<html>
<head>
<!-- CSS or js here -->
</head>
<body>
{% block content %}
{% endblock %}
</body>
</html>
30. Template inheritance
{% extends “base.html” %}
{% block content %}
<div>
Hi {{ name }}. You are seeing your profile.
</div>
{% endblock %}
Profile page
e.g. profiles.html
code sample...