api zugriff für posts
This commit is contained in:
@@ -41,7 +41,8 @@ INSTALLED_APPS = [
|
||||
'django.contrib.staticfiles',
|
||||
'taggit',
|
||||
'ckeditor',
|
||||
'ckeditor_uploader'
|
||||
'ckeditor_uploader',
|
||||
'rest_framework'
|
||||
]
|
||||
|
||||
MIDDLEWARE = [
|
||||
|
||||
@@ -18,10 +18,17 @@ from django.urls import path, include
|
||||
from django.conf.urls.static import static
|
||||
from django.conf import settings
|
||||
from . import views
|
||||
from posts.views import PostViewSet
|
||||
from rest_framework import routers
|
||||
|
||||
router = routers.DefaultRouter()
|
||||
router.register(r'posts', PostViewSet)
|
||||
|
||||
urlpatterns = [
|
||||
path('posts/',include('posts.urls')),
|
||||
path('admin/', admin.site.urls),
|
||||
path('', views.index, name='home'),
|
||||
path('index.html', views.index, name='home'),
|
||||
path('ckeditor/', include('ckeditor_uploader.urls'))
|
||||
path('ckeditor/', include('ckeditor_uploader.urls')),
|
||||
path('api/', include(router.urls))
|
||||
]+static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
||||
|
||||
@@ -2,10 +2,13 @@ from django.db import models
|
||||
from django.contrib.auth.models import User
|
||||
from taggit.managers import TaggableManager
|
||||
from django.utils.text import slugify
|
||||
from django.urls import reverse
|
||||
|
||||
#from ckeditor_uploader import RichTextUploadingField
|
||||
import django
|
||||
import uuid
|
||||
import re
|
||||
from rest_framework import serializers
|
||||
|
||||
# Create your models here.
|
||||
class Post(models.Model):
|
||||
@@ -40,7 +43,8 @@ class Post(models.Model):
|
||||
# TimeStamps
|
||||
date_modified=models.DateTimeField(auto_now=True)
|
||||
date_created=models.DateTimeField(auto_now_add=True)
|
||||
|
||||
|
||||
|
||||
|
||||
def get_tags(self):
|
||||
return ",".join(self.tags.names())
|
||||
@@ -53,7 +57,9 @@ class Post(models.Model):
|
||||
|
||||
def key(self):
|
||||
return self.slug or self.id
|
||||
|
||||
@property
|
||||
def url(self):
|
||||
return reverse('posts.show', kwargs={"id":self.slug})
|
||||
def save(self, *args, **kwargs):
|
||||
if self.id is None and (self.slug is None or self.slug ==""):
|
||||
self.slug=slugify(self.title)
|
||||
@@ -65,6 +71,10 @@ class Post(models.Model):
|
||||
|
||||
|
||||
|
||||
|
||||
class PostSerializer(serializers.HyperlinkedModelSerializer):
|
||||
class Meta:
|
||||
model = Post
|
||||
fields = ['slug','title', 'body','url', 'legacy_id']
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2,8 +2,10 @@ from django.shortcuts import render
|
||||
from django.http import HttpResponse
|
||||
from collections import deque
|
||||
|
||||
from .models import Post
|
||||
from .models import Post, PostSerializer
|
||||
from taggit.models import Tag
|
||||
from rest_framework import viewsets
|
||||
from rest_framework import permissions
|
||||
|
||||
# Create your views here.
|
||||
def index(request):
|
||||
@@ -18,3 +20,13 @@ def show(request,id=None):
|
||||
elif id != ""and not id is None:
|
||||
p=Post.objects.get(slug=(id))
|
||||
return render(request, 'posts/show.html', {"post":p})
|
||||
|
||||
|
||||
class PostViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
API endpoint that allows users to be viewed or edited.
|
||||
"""
|
||||
queryset = Post.objects.all().order_by('-public_date')
|
||||
serializer_class = PostSerializer
|
||||
permission_classes = [permissions.IsAuthenticated]
|
||||
lookup_field='slug'
|
||||
@@ -1,4 +1,5 @@
|
||||
django
|
||||
django-taggit
|
||||
django-ckeditor
|
||||
Pillow
|
||||
Pillow
|
||||
djangorestframework
|
||||
Reference in New Issue
Block a user