django e i manytomanyfield

l'esempio è il classico post di un blog con n tag attacchate
quello che vorrei ottenere è la possibilità, alla creazione di un post, di poter scegliere tra le tag disponibili e/o di crearne di nuove "al volo"

la mia view è così:


def add_post(request):
if request.method == 'POST':
form = PostForm(data=request.POST)
if form.is_valid():
model_instance = form.save(commit=False)
model_instance.author = request.user
model_instance.save()

###############################
for tag in model_instance.tags.all():
t = Tag.objects.get_or_create(author=request.user, title=tag.title, slug=slugify(tag.title))
model_instance.tags.add(t)
###############################

return HttpResponseRedirect("/blog/")
else:
form = PostForm()
return render_to_response(
'blog/add_post.html',
{'form' : form },
context_instance=RequestContext(request))


la parte incriminata è quella tra i cancelletti...
in pratica, come minchia faccio a loopare sulle tag ancora-da-creare?

(nel template uso select2.js che mi crea una dropdown delle option disponibili e lascia anche la possibilità di aggiungerne a mano)

allo stato attuale salva solo il post senza tag, indipendentemente se quelle selezionate esistano o meno

help plz