У меня есть модели данных, такие как:
from django.db import models
class Student(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
email = models.EmailField()
def __str__(self):
return self.first_name + ' ' + self.last_name
class Course(models.Model):
name = models.CharField(max_length=255)
description = models.TextField()
start_date = models.DateField(null=True)
end_date = models.DateField(null=True)
def __str__(self):
return self.name
class CourseParticipant(models.Model):
course = models.ForeignKey(Course, related_name='courses', on_delete=None)
student = models.ForeignKey(Student, related_name='students', on_delete=None)
completed = models.BooleanField(null=True, default=False)
def __str__(self):
return self.course
У меня есть такой сериализатор, как:
class AssignStudentToCourseSerializer(serializers.ModelSerializer):
class Meta:
model = CourseParticipant
fields = ('id', 'student', 'course')
class UnassignedStudentFromCourseSerializer(serializers.ModelSerializer):
class Meta:
model = CourseParticipant
fields = ('student_id', 'course_id')
У меня есть представления для этого
class AssignStudentToCourse(generics.CreateAPIView):
serializer_class = AssignStudentToCourseSerializer
class UnassignedStudentFromCourse(generics.DestroyAPIView):
serializer_class = UnassignedStudentFromCourseSerializer
queryset = CourseParticipant.objects.all()
У меня есть таблица CourseParticipant
с некоторыми записями
-------------------------------------------
| id | course_id | student_id |
|------------|-------------|--------------|
| 1 | 2 | 2 |
| 2 | 3 | 2 |
| 3 | 2 | 3 |
| 4 | 2 | 4 |
-------------------------------------------
Мне нужно удалить записи из этой таблицы по course_id
и student_id
. Теперь используйте DestroyAPIView
Я могу удалить record
на id
, но это сделано неправильно. Как я могу удалить record
из моей таблицы по нескольким условиям?