django - 如何在 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')
]
我已经制作了课程和课程,我希望用户能够保存他们的课程并将它们保存在我的课程中,有人可以帮忙吗?
找教程没找到
解决方案
推荐阅读
- python - Django-tables 分页 per_page 未按预期工作
- php - 如何像在 python 中一样在 PHP 中执行校验和?
- python - 如何解决 Fenics 示例 ft06_elasticity.py 中未定义名称“nabla_div”错误?
- cluster-computing - pcs 在同时启动两台机器时在主节点中启动它们之前不会停止伙伴节点中的故障转移资源
- excel - 我能否以编程方式启用和禁用存储在 SharePoint 中并链接到 ms-access 的 xlsx 文件的 ms-excel 文件共享/共同创作?
- java - 我们可以使用包装类将 int 转换为 Byte 而不进行类型转换吗?
- javascript - React-DOM 自动触发 onClick 处理程序
- typescript - 试图让 fromEntries 类型正确
- mysql - 经典 ASP 遗留系统为 MySQL 8.0 中的所有整数返回 0
- c++ - Win32 更新后重启应用