首页 > 解决方案 > Django 信号:向没有直接关系的类发送信号

问题描述

删除对象时,如何-=1count字段中计数?class Purchased_lessonsWatched_lessons

观看的课程/models.py

from lessons.models import lesson
from django.conf import settings
from purchased_lessons.models import Purchased_lessons
from datetime import datetime
from django.dispatch import receiver
from django.db.models.signals import post_delete

class Watched_lessons(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.DO_NOTHING)
    lesson = models.ForeignKey(Statement, on_delete=models.CASCADE)
    watched_date = models.DateTimeField(default=datetime.now)

    def __str__(self):
        return self.lesson

其他代码:

课程/模型.py

from courses.models import Course

class Lesson(models.Model):   
    course = models.ForeignKey(Collection, on_delete=models.DO_NOTHING, blank=True, null=True)
    lesson = models.CharField(max_length=200, null=True, blank=True)

    def __str__(self):
        return self.lesson

课程/模型.py

from django.db import models

class Course(models.Model):
    title = models.CharField(max_length=50)

    def __str__(self):
        return self.title

购买的课程/models.py

from django.db import models

from django.conf import settings
from courses.models import Course


class Purchased_lessons(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.DO_NOTHING)
    course = models.ForeignKey(Course, on_delete=models.DO_NOTHING)
    count = models.IntegerField(default=0) #tracks the amount of lessons watched per course and by a particular user.

    def __str__(self):
        return self.course

标签: pythondjangodjango-modelsmodelsignals

解决方案


推荐阅读