Skip to content

Commit 5841d63

Browse files
committed
finish form processing, update form for hidden author field, provide notification in base.html
1 parent 0c3dd71 commit 5841d63

File tree

3 files changed

+22
-4
lines changed

3 files changed

+22
-4
lines changed

resources/session08/mysite/myblog/forms.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,7 @@ class PostForm(forms.ModelForm):
55

66
class Meta:
77
model = Post
8-
fields = ('title', 'text', 'author')
8+
fields = ('title', 'text', 'author')
9+
widgets = {
10+
'author': forms.HiddenInput(),
11+
}

resources/session08/mysite/myblog/views.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from django.http import HttpResponse, Http404
2+
from django.http import HttpResponseRedirect
23
from django.shortcuts import render
34
from django.core.exceptions import PermissionDenied
45
from django.core.urlresolvers import reverse
@@ -42,9 +43,16 @@ def add_view(request):
4243
raise PermissionDenied
4344
if request.method == 'POST':
4445
form = PostForm(request.POST)
45-
# handle form submission
46+
if form.is_valid:
47+
post = form.save()
48+
msg = "post '%s' saved" % post
49+
messages.add_message(request, messages.INFO, msg)
50+
return HttpResponseRedirect(reverse('blog_index'))
51+
else:
52+
messages.add_message("please fix the errors below")
4653
else:
47-
form = PostForm()
54+
initial = {'author': user}
55+
form = PostForm(initial=initial)
4856

4957
context = {'form': form}
5058
return render(request, 'add.html', context)

resources/session08/mysite/mysite/templates/base.html

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,21 @@
99
<ul id="control-bar">
1010
{% if user.is_authenticated %}
1111
<li><a href="{% url 'add_post' %}">new post</a></li>
12-
{% if user.is_admin %}<li><a href="{% url 'admin:index' %}">admin</a></li>{% endif %}
12+
{% if user.is_superuser %}<li><a href="{% url 'admin:index' %}">admin</a></li>{% endif %}
1313
<li><a href="{% url 'logout' %}">logout</a></li>
1414
{% else %}
1515
<li><a href="{% url 'login' %}">login</a></li>
1616
{% endif %}
1717
</ul>
1818
</div>
1919
<div id="container">
20+
{% if messages %}
21+
<div class="notification">
22+
{% for message in messages %}
23+
<p>{{ message }}</p>
24+
{% endfor %}
25+
</div>
26+
{% endif %}
2027
<div id="content">
2128
{% block content %}
2229
[content will go here]

0 commit comments

Comments
 (0)