【发布时间】:2021-03-06 14:27:45
【问题描述】:
您好,我是 Django Rest Framework 的新手,我很难使用序列化程序。我使用抽象用户扩展了用户模型。我插入了两个新字段 is_student 和 is_teacher 然后我将这两个值都设置为 false 作为默认值。然后我将它们放在自己的模型中,然后将它们中的每一个应用于用户模型的一对一关系。我的问题是序列化程序。我如何从中制作序列化程序。我希望学生和老师与用户模型有关系,并且能够执行 http 操作,例如 get、post、put 等。
from django.db import models
from django.contrib.auth.models import AbstractUser
from django.conf import settings
# Create your models here.
class User(AbstractUser):
is_student = models.BooleanField(default=False)
is_teacher = models.BooleanField(default=False)
class Course(models.Model):
name = models.CharField(max_length=200)
description = models.TextField()
price = models.FloatField()
def __str__(self):
return self.name
class Student(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, primary_key=True)
age = models.IntegerField()
address = models.CharField(max_length=200)
def __str__(self):
return self.user.username
class Teacher(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, primary_key=True)
description = models.TextField()
course_teaching = models.ForeignKey(Course, on_delete=models.CASCADE)
students = models.ManyToManyField(Student)
def __str__(self):
return self.user.username
【问题讨论】:
-
我不明白问题是什么。 teacher_obj.user 应该返回与该教师 obj 相关的用户对象。
标签: python django database rest django-rest-framework