api zugriff für posts
This commit is contained in:
@@ -41,7 +41,8 @@ INSTALLED_APPS = [
|
|||||||
'django.contrib.staticfiles',
|
'django.contrib.staticfiles',
|
||||||
'taggit',
|
'taggit',
|
||||||
'ckeditor',
|
'ckeditor',
|
||||||
'ckeditor_uploader'
|
'ckeditor_uploader',
|
||||||
|
'rest_framework'
|
||||||
]
|
]
|
||||||
|
|
||||||
MIDDLEWARE = [
|
MIDDLEWARE = [
|
||||||
|
|||||||
@@ -18,10 +18,17 @@ from django.urls import path, include
|
|||||||
from django.conf.urls.static import static
|
from django.conf.urls.static import static
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from . import views
|
from . import views
|
||||||
|
from posts.views import PostViewSet
|
||||||
|
from rest_framework import routers
|
||||||
|
|
||||||
|
router = routers.DefaultRouter()
|
||||||
|
router.register(r'posts', PostViewSet)
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('posts/',include('posts.urls')),
|
path('posts/',include('posts.urls')),
|
||||||
path('admin/', admin.site.urls),
|
path('admin/', admin.site.urls),
|
||||||
path('', views.index, name='home'),
|
path('', views.index, name='home'),
|
||||||
path('index.html', 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)
|
]+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 django.contrib.auth.models import User
|
||||||
from taggit.managers import TaggableManager
|
from taggit.managers import TaggableManager
|
||||||
from django.utils.text import slugify
|
from django.utils.text import slugify
|
||||||
|
from django.urls import reverse
|
||||||
|
|
||||||
#from ckeditor_uploader import RichTextUploadingField
|
#from ckeditor_uploader import RichTextUploadingField
|
||||||
import django
|
import django
|
||||||
import uuid
|
import uuid
|
||||||
import re
|
import re
|
||||||
|
from rest_framework import serializers
|
||||||
|
|
||||||
# Create your models here.
|
# Create your models here.
|
||||||
class Post(models.Model):
|
class Post(models.Model):
|
||||||
@@ -42,6 +45,7 @@ class Post(models.Model):
|
|||||||
date_created=models.DateTimeField(auto_now_add=True)
|
date_created=models.DateTimeField(auto_now_add=True)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def get_tags(self):
|
def get_tags(self):
|
||||||
return ",".join(self.tags.names())
|
return ",".join(self.tags.names())
|
||||||
|
|
||||||
@@ -53,7 +57,9 @@ class Post(models.Model):
|
|||||||
|
|
||||||
def key(self):
|
def key(self):
|
||||||
return self.slug or self.id
|
return self.slug or self.id
|
||||||
|
@property
|
||||||
|
def url(self):
|
||||||
|
return reverse('posts.show', kwargs={"id":self.slug})
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
if self.id is None and (self.slug is None or self.slug ==""):
|
if self.id is None and (self.slug is None or self.slug ==""):
|
||||||
self.slug=slugify(self.title)
|
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 django.http import HttpResponse
|
||||||
from collections import deque
|
from collections import deque
|
||||||
|
|
||||||
from .models import Post
|
from .models import Post, PostSerializer
|
||||||
from taggit.models import Tag
|
from taggit.models import Tag
|
||||||
|
from rest_framework import viewsets
|
||||||
|
from rest_framework import permissions
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
def index(request):
|
def index(request):
|
||||||
@@ -18,3 +20,13 @@ def show(request,id=None):
|
|||||||
elif id != ""and not id is None:
|
elif id != ""and not id is None:
|
||||||
p=Post.objects.get(slug=(id))
|
p=Post.objects.get(slug=(id))
|
||||||
return render(request, 'posts/show.html', {"post":p})
|
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'
|
||||||
@@ -2,3 +2,4 @@ django
|
|||||||
django-taggit
|
django-taggit
|
||||||
django-ckeditor
|
django-ckeditor
|
||||||
Pillow
|
Pillow
|
||||||
|
djangorestframework
|
||||||
Reference in New Issue
Block a user