Skip to content

Instantly share code, notes, and snippets.

@dobleuber
Created August 28, 2020 20:54
Show Gist options
  • Save dobleuber/ebac4092b9dab7c05e15982860da661b to your computer and use it in GitHub Desktop.
Save dobleuber/ebac4092b9dab7c05e15982860da661b to your computer and use it in GitHub Desktop.
Rest-api
from django.db import models
from django.contrib.auth.models import User
class Post(models.Model):
description = models.CharField(max_length=512)
created = models.DateTimeField()
owner = models.ForeignKey(User, on_delete=models.CASCADE, related_name='posts')
picture = models.FileField()
title = models.CharField(max_length=128)
def __str__(self):
return self.title
from django.contrib.auth.models import Group, User
from rest_framework.serializers import ModelSerializer
from instapic_api.instapic_post.models import Post
class UserSerializer(ModelSerializer):
class Meta:
model = User
fields = ['url', 'username', 'email', 'groups']
class PostSerializer(ModelSerializer):
owner = UserSerializer()
class Meta:
model = Post
fields = [
'description',
'created',
'owner',
'picture',
'title',
]
def create(self, validated_data):
print('create called')
username = validated_data['owner']
validated_data['owner'] = User.objects.get(name=username)
post = Post.objects.create(**validated_data)
return post
from django.contrib.auth.models import User
from rest_framework.viewsets import ModelViewSet
from rest_framework import authentication, permissions
from instapic_api.instapic_post.models import Post
from instapic_api.instapic_post.serializers import (
PostSerializer,
UserSerializer
)
class PostViewSet(ModelViewSet):
queryset = Post.objects.all().order_by('-created')
serializer_class = PostSerializer
authentication_classes = [authentication.TokenAuthentication]
permission_classes = [permissions.IsAuthenticated]
def create(self, request):
request.data['owner'] = request.user
request.data['created'] = datetime.now()
return super(PostViewSet, self).create(request)
class UserViewSet(ModelViewSet):
queryset = User.objects.all().order_by('-date_joined')
serializer_class = UserSerializer
permission_classes = [permissions.IsAuthenticated]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment