mirror of
https://github.com/django/django.git
synced 2025-01-12 19:37:06 +00:00
3bd384aa62
Fieldset dictionary names, search fields and unique_together attribute names all have to be convertible to strings (that has always been true). If somebody passes in a unicode object, Python barfs because Django uses those values as keyword argument names and function calls require parameter names to be str objects. We now convert thing to strs automatically. git-svn-id: http://code.djangoproject.com/svn/django/trunk@10510 bcc190cf-cafb-0310-a4f2-bffc1f526a37
48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
import os
|
|
from django.db import models
|
|
from django import forms
|
|
|
|
class Triple(models.Model):
|
|
left = models.IntegerField()
|
|
middle = models.IntegerField()
|
|
right = models.IntegerField()
|
|
|
|
def __unicode__(self):
|
|
return u"%d, %d, %d" % (self.left, self.middle, self.right)
|
|
|
|
class Meta:
|
|
unique_together = (('left', 'middle'), (u'middle', u'right'))
|
|
|
|
class FilePathModel(models.Model):
|
|
path = models.FilePathField(path=os.path.dirname(__file__), match=".*\.py$", blank=True)
|
|
|
|
__test__ = {'API_TESTS': """
|
|
When the same field is involved in multiple unique_together constraints, we
|
|
need to make sure we don't remove the data for it before doing all the
|
|
validation checking (not just failing after the first one).
|
|
|
|
>>> _ = Triple.objects.create(left=1, middle=2, right=3)
|
|
>>> class TripleForm(forms.ModelForm):
|
|
... class Meta:
|
|
... model = Triple
|
|
|
|
>>> form = TripleForm({'left': '1', 'middle': '2', 'right': '3'})
|
|
>>> form.is_valid()
|
|
False
|
|
>>> form = TripleForm({'left': '1', 'middle': '3', 'right': '1'})
|
|
>>> form.is_valid()
|
|
True
|
|
|
|
# Regression test for #8842: FilePathField(blank=True)
|
|
>>> class FPForm(forms.ModelForm):
|
|
... class Meta:
|
|
... model = FilePathModel
|
|
|
|
>>> form = FPForm()
|
|
>>> names = [c[1] for c in form['path'].field.choices]
|
|
>>> names.sort()
|
|
>>> names
|
|
['---------', '__init__.py', 'models.py']
|
|
"""}
|
|
|