在达到数据库中特定对象的特定计数后,为特定用户避免 Django 模型创建对象

Refrain Django Models from creating an object after a specific count of that object in db is reached, for a specific user

我想有一种方法以某种方式向前端显示 error/prompt(可能是 json 响应),每当用户尝试添加对象时,在我的情况下,1 个用户不能数据库中存储了 50 多个任务,我的数据库模型很简单,它只是一个任务模型和一个用户模型,每个任务都有一个外键 user_id。我是在 golang-gorm 中使用钩子做的,Django 中有没有类似的方法可以有效地做到这一点?

如果相关用户已经有 50 个任务,您可以覆盖 Task 模型的 clean 方法以引发 ValidationError

像这样:

class Task(models.Model):
   user = models.ForeyKey(User, on_delete=models.CASCADE, related_name='tasks')

   def clean(self):
       if self.user.tasks.count() >= 50:
           raise ValidationError('User cannot have more than 50 tasks')