﻿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
13717	unique_for_* errors out when date field is left empty	Silvio J. Gutierrez	Satoru Logic	"Using Django 1.2.1, create a simple model, like so:

{{{
from django.db import models

class Article(models.Model):

    title = models.CharField(max_length=200)
    pub_date = models.DateField()
    slug = models.SlugField(max_length=150, unique_for_year='pub_date')    
}}}

and register it with the admin site in admin.py; the standard registration is fine:

{{{
from django.contrib import admin

from models import Article

admin.site.register(Article)
}}}

Go to create an article, and enter ""abc"" as the tile and the slug, but leave the date empty. On submission, you'll get {{{ 'NoneType' object has no attribute 'day' }}}.

The error seems to apply to unique_for_year and unique_for_month as well, though the error displays ""no attribute 'year'"" and ""no attribute 'month'"" respectively, naturally. No error occurs if the field marked as unique_for_* is left empty, in this case the slug. Rather the actual validation message comes up. My guess is that the date field needs to be checked to see if it's empty first, and ''then'' check for uniqueness.

In short, rather than displaying the validation for ""this field is required"" which is user friendly, the submission errors out. The same setup ''does not'' error out on Django 1.1.2.

Let me know if you need any more details,

Silvio



"		closed	contrib.admin	1.2		worksforme			Unreviewed	0	0	1	0	0	0
