如何在Django 3中制作功能连接课程
我有一个“课程”模型,如果需要,我想制作一个“加入课程”功能 我的课程中已经保存了加入,有人能帮忙吗如何在Django 3中制作功能连接课程,django,django-rest-framework,Django,Django Rest Framework,我有一个“课程”模型,如果需要,我想制作一个“加入课程”功能 我的课程中已经保存了加入,有人能帮忙吗 从django.url导入路径 从.view导入CourseListView、CourseDetailView、LessonDetailView 应用程序名称=‘课程’ URL模式=[ 路径(“”,CourseListView.as_view(),name='list'), 路径(“”,CourseDetailView.as_view(),name='detail'), 路径('/',Lesso
从django.url导入路径
从.view导入CourseListView、CourseDetailView、LessonDetailView
应用程序名称=‘课程’
URL模式=[
路径(“”,CourseListView.as_view(),name='list'),
路径(“”,CourseDetailView.as_view(),name='detail'),
路径('/',LessonDetailView.as_view(),name='lesson-detail')
]
我已经制作了课程和课程,我希望用户能够保存他们的课程,并将它们保存在我的课程中,有人能帮忙吗
我搜索了教程没有找到它
您的用户能否创建课程或仅加入课程?仅加入课程
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')
]