Вы не показываете полную трассировку, которая помогла бы отследить, где именно происходит ошибка. (Я подозреваю, что это не тот код, который вы используете, или это не фактическое сообщение об ошибке, потому что, как упоминает ребус, ошибка не соответствует коду.)
Впрочем, пара указателей. Во-первых, вы не используете форму для сохранения. Если вы это сделали, вы, вероятно, не увидите эту ошибку. Вместо того, чтобы получать значения вручную из запроса, вам следует создать экземпляр формы, используя request.POST
, а затем сохранить его. Кроме того, вы не проверяете, что форма действительно действительна, прежде чем пытаться использовать ее значения. Вот что вы должны делать:
if request.method == 'POST':
form = NewForm(request.POST)
if form.is_valid():
new_obj = form.save(commit=False)
new_obj.created_by = request.user
new_obj.save()
return HttpResponseRedirect('/')
else:
form = NewForm()
return render_to_response('news/new_form.html', {'form': form},
context_instance=RequestContext(request))
Также обратите внимание, что ваш менеджер совершенно не имеет значения - менеджер по умолчанию уже определяет метод create
, который делает то же самое, что и ваш.