Вероятно, это еще одна ошибка пользователя, но у меня странная проблема с этим.
Я занимаюсь разработкой платформы, и все работает нормально, если вы с ней не связываетесь.Сейчас я тестирую с DEBUG = False и неправильным поведением пользователя, таким как отправка неполных форм (оставляя обязательные поля пустыми).
Дело в том, что django (1.3.1) должен автоматически возвращать список ошибок формы, еслипользователь отправляет неверную форму, но вместо этого возвращает 500 ошибок для каждой формы в приложении.
Я думаю, что мой код в порядке, но я не уверен.
views.py
@permission_required('spaces.add_space')
def create_space(request):
"""
Returns a SpaceForm form to fill with data to create a new space. There
is an attached EntityFormset to save the entities related to the space. Only
site administrators are allowed to create spaces.
:attributes: - space_form: empty SpaceForm instance
- entity_forms: empty EntityFormSet
:rtype: Space object, multiple entity objects.
:context: form, entityformset
"""
space_form = SpaceForm(request.POST or None, request.FILES or None)
entity_forms = EntityFormSet(request.POST or None, request.FILES or None,
queryset=Entity.objects.none())
if request.user.is_staff:
if request.method == 'POST':
space_form_uncommited = space_form.save(commit=False)
space_form_uncommited.author = request.user
if space_form.is_valid() and entity_forms.is_valid():
new_space = space_form_uncommited.save()
space = get_object_or_404(Space, name=space_form_uncommited.name)
ef_uncommited = entity_forms.save(commit=False)
for ef in ef_uncommited:
ef.space = space
ef.save()
# We add the created spaces to the user allowed spaces
request.user.profile.spaces.add(space)
#messages.success(request, _('Space %s created successfully.') % space.name)
return redirect('/spaces/' + space.url)
return render_to_response('spaces/space_add.html',
{'form': space_form,
'entityformset': entity_forms},
context_instance=RequestContext(request))
else:
return render_to_response('not_allowed.html',
context_instance=RequestContext(request))
Шаблон слишком большой для вставки, вы можете увидеть его в dpaste
Я не понимаю, почему django возвращает ошибку 500 вместо отображениясписок ошибок.Кто-нибудь может мне помочь?
Полный исходный код (в конце концов, это GPL) находится на GitHub .Это модули на src/e_cidadania/apps/spaces