1 from django
.shortcuts
import render
, get_object_or_404
, redirect
2 from django
.utils
import timezone
3 from .models
import Post
4 from .forms
import PostForm
6 def post_list(request
):
7 posts
= Post
.objects
.filter(published_date__lte
=timezone
.now()).order_by('-published_date')
8 return render(request
, 'blog/post_list.html', {'posts': posts
})
10 def post_detail(request
, pk
):
11 post
= get_object_or_404(Post
, pk
=pk
)
12 return render(request
, 'blog/post_detail.html', {'post': post
})
14 def post_new(request
):
15 if request
.method
== 'POST':
16 form
= PostForm(request
.POST
)
18 post
= form
.save(commit
=False)
19 post
.author
= request
.user
20 post
.published_date
= timezone
.now()
22 return redirect('post_detail', pk
=post
.pk
)
25 return render(request
, 'blog/post_edit.html', {'form': form
})
27 def post_edit(request
, pk
):
28 post
= get_object_or_404(Post
, pk
=pk
)
29 if request
.method
== 'POST':
30 form
= PostForm(request
.POST
, instance
=post
)
32 post
= form
.save(commit
=False)
33 post
.author
= request
.user
34 post
.published_date
= timezone
.now()
36 return redirect('post_detail', pk
=post
.pk
)
38 form
= PostForm(instance
=post
)
39 return render(request
, 'blog/post_edit.html', {'form': form
})