summaryrefslogtreecommitdiffstats
path: root/news/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'news/views.py')
-rw-r--r--news/views.py33
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,
+ })