这是本书的model.py:
from django.db import modelsfrom django.urls import reversefrom django.conf import settingsclass Chapter(models.Model): Title = models.CharFIEld(max_length=200,unique=True) slug = models.SlugFIEld(unique=True) date_completed = models.DateTimeFIEld(blank=True,null=True) completed = models.BooleanFIEld(default=False) def __str__(self): return self.Title def get_absolute_url(self): return reverse("course:subchapter_List",kwargs={"pk": self.pk})class SubChapter(models.Model): chapter = models.ForeignKey(Chapter,on_delete=models.CASCADE) Title = models.CharFIEld(max_length=200,unique=True) slug = models.SlugFIEld(unique=True) completed = models.BooleanFIEld(default=False) def __str__(self): return self.Titleclass SubSection(models.Model): sub_chapter = models.ForeignKey(SubChapter,unique=True) slug = models.SlugFIEld(unique=True) text = models.TextFIEld(null=True,blank=False) completed = models.BooleanFIEld(default=False) def __str__(self): return self.Title def get_absolute_url(self): return reverse("course:detail",kwargs={"slug": self.sub_chapter.slug,"slug2": self.slug,"pk": self.sub_chapter.chapter.pk,} )
如何监视每个用户的进度,以便在查看/读取子节/子章节时,该模型实例的已完成属性仅为该用户设置为True?我当前的实现设置已完成为每个人的True.
我希望代码片段能够展示如何实现它.
解决方法 如果要监视每个用户的阅读进度,则无法在Chapter,SubChapter和SubSection模型上获得完整的字段,您需要一个与用户相关的新字段.我会做这样的事情:class ReadingProgress(models.Model): user = models.ForeignKey(User) completed_chapter = models.ForeignKey(Chapter) completed_subchapter = models.ForeignKey(SubChapter) completed_subsection = models.ForeignKey(SubSection)
如果您有不同的书籍,则还应将外键添加到书籍模型中.
然后在获取章节,章节等的视图中,您可以获取特定用户的ReadingProgress对象(并预订?)并设置相应的值.
总结以上是内存溢出为你收集整理的在Django中监视用户活动全部内容,希望文章能够帮你解决在Django中监视用户活动所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)