Django:根据外键限制数据库中的记录

时间:2014-07-03 20:07:35

标签: python django django-models django-forms

我想将MyTable中的行数限制为每个用户2个

class MyTable(models.Model):
    user = models.ForeignKey(User)
    submission = models.CharField(max_length=100)

覆盖save方法或在form validation中查看此方法是否更好?如果是保存方法,我该如何向用户返回错误?

1 个答案:

答案 0 :(得分:0)

使用clean方法检查每个用户表中是否已有2行。

def clean(self):
    if MyTable.objects.filter(user=self.user).count()>=2:
        raise ValidationError('Only 2 entries per user allowed')