Django signals:将信号发送到没有直接关系的类

2024-03-29 07:38:41 发布

您现在位置:Python中文网/ 问答频道 /正文

删除Watched_lessons对象时,如何在class Purchased_lessons中的count字段中设置计数-=1?你知道吗

看了你的课/型号.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

购买的课程/型号.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

Tags: djangofrompyimportselfmodelsettingson