我将如何访问正在验证器中针对特定字段进行验证的模型实例?
模型.py
def question_instances(value): #validator
# not sure how to get model instance within this function
industry = model_instance.industry
questions = Question.objects.filter(industry=industry)
if questions.count() > 3:
raise ValidationError('Too many questions for this industry')
class ExampleQuestion(models.Model):
industry = models.ForeignKey(Industry, on_delete=models.CASCADE)
question = models.CharField(max_length=200, validators=[question_instances])
def __str__(self):
return self.industry.industryname
最佳答案
你不能。如果你需要这个,不要使用验证器;改用干净的功能。
class ExampleQuestion(models.Model):
industry = models.ForeignKey(Industry, on_delete=models.CASCADE)
question = models.CharField(max_length=200)
def clean(self):
industry = self.industry
questions = Question.objects.filter(industry=industry).exclude(pk=self.pk)
if questions.count() > 3:
raise ValidationError('Too many questions for this industry')
关于django - 从验证器访问模型实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55081651/