﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
10660	"GeometryField doesn't honor ""required"" attribute"	Fidel Ramos	Fidel Ramos	"The Django documentation says that every form field can be left blank or not depending on [http://docs.djangoproject.com/en/dev/ref/forms/fields/#django.forms.Field.required the required attribute]. However, Django gis' {{{GeometryField}}} doesn't honor that attribute, but uses another called ''null'' instead.

A simple example to see the problem with the current {{{GeometryField}}}:

{{{
class MyForm(forms.Form):
    point = GeometryField(required=False)
}}}

According to the documentation, the form should validate when the ""point"" field is left blank, but actually it raises {{{ValidationError}}}. The offending code is in [source:/django/trunk/django/contrib/gis/forms/fields.py@8565#L31 line 31 of /django/trunk/django/contrib/gis/forms/fields.py].

I suppose (hope) that the use of ''null'' in {{{GeometryField}}} was a deliberate decision made for some reason, but I think the standard behavior for form fields must be maintained.

I see two choices for fixing this:

 1. Introduce a backwards-incompatible change so that {{{GeometryField}}} doesn't use ''null'', and use ''required'' instead. I don't know if this has impact in other parts of Django.
 1. Allow for ""null"" OR ""required"". If null is True OR required is False then the field should be allowed to be blank. One option would be calling the parent class' (Field) clean() method. This should be backwards-compatible AFAIK.

I can submit a patch when a design decision is reached.

See also [http://groups.google.com/group/django-developers/browse_thread/thread/f6177390b1ca109e this discussion at Django-developers]."		closed	GIS	1.0		fixed			Unreviewed	0	0	0	0	0	0
