Django 关于modelviewset的使用(一对多)

models.py

from django.db import models

class ClassesModel(models.Model):
    name = models.CharField(max_length=32)

    class Meta:
        db_table = 'classes'

class StudModel(models.Model):
    name = models.CharField(max_length=32)
    age = models.IntegerField()
    classes = models.ForeignKey(to='ClassesModel',related_name='stud',on_delete=models.CASCADE)

    class Meta:
        db_table = 'stud'

serializers.py

from rest_framework import serializers
from .models import ClassesModel,StudModel

class claser(serializers.ModelSerializer):
    class Meta:
        model = ClassesModel
        fields = "__all__"

class Stuser(serializers.ModelSerializer):
    classes = claser(read_only=True)
    classes_id = serializers.IntegerField(write_only=True)

    class Meta:
        model = StudModel
        fields = "__all__"

view.py

from .models import StudModel,ClassesModel
from .serializer import Stuser,claser

from rest_framework.viewsets import ModelViewSet

class Stuview(ModelViewSet):
    queryset = StudModel.objects.all()
    serializer_class = Stuser

class Classerview(ModelViewSet):
    queryset = ClassesModel.objects.all()
    serializer_class = claser

APP的urls.py

from django.urls import path,include
from rest_framework import routers

from app01.views import Stuview,Classerview

router = routers.DefaultRouter()

router.register('stu',Stuview)
router.register('cla',Classerview)

urlpatterns = [
    path('',include(router.urls)),
]

主urls.py

from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', include('app01.urls')),
]

你可能感兴趣的:(Django 关于modelviewset的使用(一对多))