From 890be81d5a8944056db66701bfb4a0ae1f1fc15a Mon Sep 17 00:00:00 2001 From: Chif Gergo <chifgeri97@gmail.com> Date: Fri, 22 Dec 2017 14:12:38 +0100 Subject: [PATCH] Veiws and urls added to news --- src/kszkepzes/settings.py | 1 + src/kszkepzes/urls.py | 2 +- .../migrations/0002_auto_20171220_1852.py | 20 +++++++++++++++++++ src/news/serializers.py | 11 ++++++++++ src/news/urls.py | 12 +++++++++++ src/news/views.py | 19 +++++++++++++++--- 6 files changed, 61 insertions(+), 4 deletions(-) create mode 100644 src/news/migrations/0002_auto_20171220_1852.py diff --git a/src/kszkepzes/settings.py b/src/kszkepzes/settings.py index d69a2b4..e40e7e8 100644 --- a/src/kszkepzes/settings.py +++ b/src/kszkepzes/settings.py @@ -43,6 +43,7 @@ INSTALLED_APPS = [ 'authsch', 'account', 'stats', + 'news', ] MIDDLEWARE = [ diff --git a/src/kszkepzes/urls.py b/src/kszkepzes/urls.py index 7d26d9b..8c50beb 100644 --- a/src/kszkepzes/urls.py +++ b/src/kszkepzes/urls.py @@ -20,5 +20,5 @@ urlpatterns = [ url(r'^admin/', admin.site.urls), url('', include('social_django.urls', namespace='social')), url(r'^api/v1/', include('stats.urls')), - + url(r'^api/v1/', include('news.urls')), ] diff --git a/src/news/migrations/0002_auto_20171220_1852.py b/src/news/migrations/0002_auto_20171220_1852.py new file mode 100644 index 0000000..82274a5 --- /dev/null +++ b/src/news/migrations/0002_auto_20171220_1852.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.5 on 2017-12-20 17:52 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('news', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='article', + name='date', + field=models.DateTimeField(auto_now_add=True), + ), + ] diff --git a/src/news/serializers.py b/src/news/serializers.py index be9febe..4aa15a1 100644 --- a/src/news/serializers.py +++ b/src/news/serializers.py @@ -9,3 +9,14 @@ class ArticleListSerializer(serializers.ModelSerializer): 'author', 'title', ] + + +class ArticleDetailSerializer(serializers.ModelSerializer): + class Meta: + model = Article + fields = [ + 'author', + 'title', + 'text', + 'date', + ] diff --git a/src/news/urls.py b/src/news/urls.py index e69de29..5ac1acb 100644 --- a/src/news/urls.py +++ b/src/news/urls.py @@ -0,0 +1,12 @@ +from rest_framework import routers +from django.conf.urls import url +from news.views import NewsListView, NewsDetailView, NewsUpdateView + +router = routers.DefaultRouter() +urlpatterns = [ + url(r'^news/$', NewsListView.as_view()), + url(r'^news/(?P<pk>\d+)/$', NewsDetailView.as_view()), + url(r'^news/edit/(?P<pk>\d+)/$', NewsUpdateView.as_view()), +] + +urlpatterns += router.urls diff --git a/src/news/views.py b/src/news/views.py index c132c70..db05e3b 100644 --- a/src/news/views.py +++ b/src/news/views.py @@ -1,8 +1,21 @@ +from rest_framework.permissions import IsAdminUser, IsAuthenticated from rest_framework import generics -from models import Article -from news.serializer import ArticleListSerializer +from news.models import Article +from news.serializers import ArticleListSerializer, ArticleDetailSerializer class NewsListView(generics.ListAPIView): - qureryset = Article.objects.all() + queryset = Article.objects.all() serializer_class = ArticleListSerializer + + +class NewsDetailView(generics.RetrieveAPIView): + queryset = Article.objects.all() + serializer_class = ArticleDetailSerializer + permission_classes = [IsAuthenticated] + + +class NewsUpdateView(generics.RetrieveUpdateAPIView): + queryset = Article.objects.all() + serializer_class = ArticleDetailSerializer + permission_classes = [IsAdminUser] -- GitLab