mirror of
https://github.com/django/django.git
synced 2025-08-04 19:08:28 +00:00
Fixed #9218 -- Simplified the fix from #9039 and added tests to ensure this case doesn't break again (and that the simplification didn't break anything).
git-svn-id: http://code.djangoproject.com/svn/django/trunk@9341 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
e600364f7d
commit
21fa517248
2 changed files with 32 additions and 2 deletions
|
@ -158,6 +158,15 @@ class Book(models.Model):
|
|||
|
||||
class Meta:
|
||||
unique_together = ('title', 'author')
|
||||
|
||||
class ExplicitPK(models.Model):
|
||||
key = models.CharField(max_length=20, primary_key=True)
|
||||
desc = models.CharField(max_length=20, blank=True, unique=True)
|
||||
class Meta:
|
||||
unique_together = ('key', 'desc')
|
||||
|
||||
def __unicode__(self):
|
||||
return self.key
|
||||
|
||||
__test__ = {'API_TESTS': """
|
||||
>>> from django import forms
|
||||
|
@ -1247,6 +1256,27 @@ True
|
|||
>>> form.is_valid()
|
||||
True
|
||||
|
||||
# Test for primary_key being in the form and failing validation.
|
||||
>>> class ExplicitPKForm(ModelForm):
|
||||
... class Meta:
|
||||
... model = ExplicitPK
|
||||
... fields = ('key', 'desc',)
|
||||
>>> form = ExplicitPKForm({'key': u'', 'desc': u'' })
|
||||
>>> form.is_valid()
|
||||
False
|
||||
|
||||
# Ensure keys and blank character strings are tested for uniqueness.
|
||||
>>> form = ExplicitPKForm({'key': u'key1', 'desc': u''})
|
||||
>>> form.is_valid()
|
||||
True
|
||||
>>> form.save()
|
||||
<ExplicitPK: key1>
|
||||
>>> form = ExplicitPKForm({'key': u'key1', 'desc': u''})
|
||||
>>> form.is_valid()
|
||||
False
|
||||
>>> form.errors
|
||||
{'__all__': [u'Explicit pk with this Key and Desc already exists.'], 'key': [u'Explicit pk with this Key already exists.'], 'desc': [u'Explicit pk with this Desc already exists.']}
|
||||
|
||||
# Choices on CharField and IntegerField
|
||||
>>> class ArticleForm(ModelForm):
|
||||
... class Meta:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue