我想检查一下我在很多地方设置的关系不超过3个。
我尝试使用clean方法执行此操作:
if self.tags.count()>3:
raise ValidationError(_(u'You cannot add more than 3 tags'))
但self.tags
不返回当前更新...仅保存对象。
你有想法访问它们吗?
由于
答案 0 :(得分:3)
你可以通过几种方式做到这一点。
首先,您可以将其作为模型的save()
的一部分在你的模型中,做一下这样的事情:
def save(self):
# this may not be the correct check... but it will be something like this
if self.tags.count() > 3:
# raise errors here
else:
super(MODEL_NAME,self).save()
或者你可以在视图中手动完成。
def some_view(request):
# all the request.POST checking goes here
the_model = form.save(commit=False)
if the_model.tags.count() > 3:
#error stuff
else:
the_model.save()
答案 1 :(得分:-2)
布兰特是对的。但是,我认为更好的方法是使用三个单独的ForeignKey字段而不是一个ManyToMany。