python
INSTALLED_APPS = [
...
'rest_framework',
...
]
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAuthenticated',
],
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.TokenAuthentication',
],
}
python
from django.db import models
class Blog(models.Model):
name = models.CharField(max_length=100)
class Post(models.Model):
blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
title = models.CharField(max_length=100)
content = models.TextField()
python
from rest_framework import serializers
class BlogSerializer(serializers.ModelSerializer):
class Meta:
model = Blog
fields = '__all__'
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = '__all__'
python
from rest_framework import viewsets
from .models import Blog, Post
from .serializers import BlogSerializer, PostSerializer
class BlogViewSet(viewsets.ModelViewSet):
queryset = Blog.objects.all()
serializer_class = BlogSerializer
class PostViewSet(viewsets.ModelViewSet):
queryset = Post.objects.all()
serializer_class = PostSerializer
python
from django.urls import path, include
from rest_framework import routers
from .views import BlogViewSet, PostViewSet
router = routers.DefaultRouter()
router.register(r'blogs', BlogViewSet)
router.register(r'posts', PostViewSet)
urlpatterns = [
path('', include(router.urls)),
]