ну или, если хотите дальше свое пилить, то сначала надо разбить строку на теги, создать объекты тегов и сохранять после этого,
При таких раскладах я не могу сохранить экземпляр блога, так как form.is_valid() не срабатывает выбрасывает исключение ValidationError, ругаясь на поле с тегами.
Короче, чтобы не быть голословным, вот исходный код представления.
def create_tag_list(tags_str):
tags_denot = tags_str.split(' ')
tag_list = list()
for tag_denot in tags_denot:
try:
tag = Tag.objects.get(denotation=tag_denot)
except ObjectDoesNotExist:
tag = Tag(denotation=tag_denot)
else:
tag.rating += 1
tag.save()
tag_list.append(tag)
return tag_list
def create_task(request):
if request.method == 'POST':
form = CreateTaskForm(request.POST)
tags = create_tag_list(request.POST['tags'])
# TODO: rewrite validation method for CreateTaskForm
form.instance.full_clean(exclude=['tags', 'creator'])
task = form.save(commit=False)
task.creator_id = request.user.pk
task.save()
task.add_tags(tags)
for tag in tags:
form.instance.tags.add(tag)
try:
task.full_clean(exclude=['tags'])
except ValidationError as e:
raise e
else:
return redirect('solve_task', task.pk)
else:
form = CreateTaskForm()
categories = Category.objects.all()
return render_to_response('task/create.html', { 'form': form, 'categories': categories },
context_instance=RequestContext(request)
)