diff options
Diffstat (limited to 'news/views.py')
| -rw-r--r-- | news/views.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/news/views.py b/news/views.py new file mode 100644 index 0000000..8256b8d --- /dev/null +++ b/news/views.py @@ -0,0 +1,33 @@ +from django.shortcuts import render_to_response, redirect +from django.forms import ModelForm +from news.models import News +from django.views.generic import ListView, DetailView +from django.db.models import Count +from django.http import HttpResponseRedirect + +class NewsForm(ModelForm): + class Meta: + model = News + +class NewsList(ListView): + model = News + paginate_by= 5 + queryset = News.objects.annotate(Count('comment')).select_related('author__username') + context_object_name = 'news_list' + +class NewsView(DetailView): + model = News + context_object_name='news' + +def post(request): + if request.method == 'POST': + form = NewsForm(request.POST) + if form.is_valid(): + form.save() + return HttpResponseRedirect('') + else: + form = NewsForm() + + return render_to_response('news/post.html', { + 'form': form, + }) |
