如何从Django中的模型实例中删除用户?
我有一个电子学习网站,学生可以注册课程,并访问由讲师创建和管理的课程内容。但我不知道如何让学生取消某一特定课程的学习,然后在取消学习课程后更新课程列表。请注意,课程模型有一个属性students,该属性对学生具有多对多模型字段 以下是课程应用程序的models.py文件:-如何从Django中的模型实例中删除用户?,django,django-models,django-views,many-to-many,Django,Django Models,Django Views,Many To Many,我有一个电子学习网站,学生可以注册课程,并访问由讲师创建和管理的课程内容。但我不知道如何让学生取消某一特定课程的学习,然后在取消学习课程后更新课程列表。请注意,课程模型有一个属性students,该属性对学生具有多对多模型字段 以下是课程应用程序的models.py文件:- class Course(models.Model): owner = models.ForeignKey(User, related_name='cour
class Course(models.Model):
owner = models.ForeignKey(User,
related_name='courses_created',
on_delete=models.CASCADE)
subject = models.ForeignKey(Subject,
related_name='courses',
on_delete=models.CASCADE)
title = models.CharField(max_length=200)
slug = models.SlugField(max_length=200, unique=True)
overview = models.TextField()
created = models.DateTimeField(auto_now_add=True)
students = models.ManyToManyField(User,related_name='courses_joined',blank=True)
class Meta:
ordering = ['-created']
def __str__(self):
return self.title
class StudentRegistrationView(CreateView):
template_name = 'students/student/registration.html'
form_class = UserCreationForm
success_url = reverse_lazy('homepage')
def form_valid(self, form):
result = super(StudentRegistrationView,
self).form_valid(form)
cd = form.cleaned_data
user = authenticate(username=cd['username'],
password=cd['password1'])
login(self.request, user)
return result
以下是学生应用程序中的学生视图:-
class StudentEnrollCourseView(LoginRequiredMixin, FormView):
course = None
form_class = CourseEnrollForm
def form_valid(self, form):
self.course = form.cleaned_data['course']
self.course.students.add(self.request.user)
my_group = Group.objects.get(name='Enrolled')
my_group.user_set.add(self.request.user)
return super(StudentEnrollCourseView,
self).form_valid(form)
def get_success_url(self):
return reverse_lazy('student_course_detail',
args=[self.course.id])
class StudentCourseListView(LoginRequiredMixin, ListView):
model = Course
template_name = 'students/course/list.html'
def get_queryset(self):
qs = super(StudentCourseListView, self).get_queryset()
return qs.filter(students__in=[self.request.user])
from django import forms
from courses.models import Course
class CourseEnrollForm(forms.Form):
course =forms.ModelChoiceField(queryset=Course.objects.all(),
widget=forms.HiddenInput)
这是学生应用程序的forms.py文件:-
class StudentEnrollCourseView(LoginRequiredMixin, FormView):
course = None
form_class = CourseEnrollForm
def form_valid(self, form):
self.course = form.cleaned_data['course']
self.course.students.add(self.request.user)
my_group = Group.objects.get(name='Enrolled')
my_group.user_set.add(self.request.user)
return super(StudentEnrollCourseView,
self).form_valid(form)
def get_success_url(self):
return reverse_lazy('student_course_detail',
args=[self.course.id])
class StudentCourseListView(LoginRequiredMixin, ListView):
model = Course
template_name = 'students/course/list.html'
def get_queryset(self):
qs = super(StudentCourseListView, self).get_queryset()
return qs.filter(students__in=[self.request.user])
from django import forms
from courses.models import Course
class CourseEnrollForm(forms.Form):
course =forms.ModelChoiceField(queryset=Course.objects.all(),
widget=forms.HiddenInput)