首页 > 解决方案 > 如何在 Django 3 中制作功能加入课程

问题描述

我有一个“课程”模型,我想做一个加入课程功能,如果加入已经保存在我的课程中,有人可以帮忙吗?

from django.db import models
from django.urls import reverse




class Course(models.Model):
    slug = models.SlugField()
    title = models.CharField(max_length=120)
    description = models.TextField()
    
    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('courses:detail', kwargs={'slug': self.slug})

    @property
    def lessons(self):
        return self.lesson_set.all().order_by('position')


class Lesson(models.Model):
    slug = models.SlugField()
    title = models.CharField(max_length=120)
    course = models.ForeignKey(Course, on_delete=models.SET_NULL, null=True)
    position = models.IntegerField()
    video_url = models.CharField(max_length=200)
    thumbnail = models.ImageField()

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('courses:lesson-detail',
                       kwargs={
                           'course_slug': self.course.slug,
                           'lesson_slug': self.slug
                       })
from django.shortcuts import render
from django.views.generic import ListView, DetailView,View


from .models import Course, Lesson

# Create your views here.
class CourseListView(ListView):
    model = Course

class CourseDetailView(DetailView):
    model = Course

class LessonDetailView(View):
    def get(self,request,course_slug,lesson_slug, *args,**kwargs):

        course_qs = Course.objects.filter(slug=course_slug)
        if course_qs.exists():
            course = course_qs.first()

        lesson_qs = course.lessons.filter(slug=lesson_slug)
        if lesson_qs.exists():
            lesson = lesson_qs.first()
        
   context = {
            'object' : None
        }
        context = {'object': lesson}
        return render(request, "courses/lesson_detail.html",context)
  
from django.urls import path
from .views import CourseListView, CourseDetailView,LessonDetailView
app_name = 'courses'
urlpatterns = [
    path('',CourseListView.as_view(),name='list'),
    path('<slug>',CourseDetailView.as_view(),name='detail'),
    path('<course_slug>/<lesson_slug>',LessonDetailView.as_view(),name='lesson-detail')

]

我已经制作了课程和课程,我希望用户能够保存他们的课程并将它们保存在我的课程中,有人可以帮忙吗?

找教程没找到

标签: djangodjango-rest-framework

解决方案


推荐阅读