Вы можете сделать это несколькими способами.
Во-первых, вы можете сделать это как часть сохранения модели ()
В вашей модели сделайте что-то вроде этого:
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()