Skip to content

Commit

Permalink
Fixed #15559 - distinct queries introduced by [15607] cause errors wi…
Browse files Browse the repository at this point in the history
…th some custom model fields

This patch just reverts [15607] until a more satisfying solution can be
found.

Refs #11707

git-svn-id: http://code.djangoproject.com/svn/django/trunk@15791 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
spookylukey committed Mar 10, 2011
1 parent f17fc56 commit 0a3aae8
Show file tree
Hide file tree
Showing 3 changed files with 2 additions and 24 deletions.
2 changes: 1 addition & 1 deletion django/db/models/fields/related.py
Expand Up @@ -910,7 +910,7 @@ def formfield(self, **kwargs):
db = kwargs.pop('using', None)
defaults = {
'form_class': forms.ModelChoiceField,
'queryset': self.rel.to._default_manager.using(db).complex_filter(self.rel.limit_choices_to).distinct(),
'queryset': self.rel.to._default_manager.using(db).complex_filter(self.rel.limit_choices_to),
'to_field_name': self.rel.field_name,
}
defaults.update(kwargs)
Expand Down
5 changes: 0 additions & 5 deletions tests/regressiontests/model_fields/models.py
Expand Up @@ -29,11 +29,6 @@ class Bar(models.Model):
b = models.CharField(max_length=10)
a = models.ForeignKey(Foo, default=get_foo)

class Baz(models.Model):
a = models.CharField(max_length=5)
#Only Foos related to Bars starting with 'a'
foo = models.ForeignKey(Foo, limit_choices_to=models.Q(bar__b__startswith='a'))

class Whiz(models.Model):
CHOICES = (
('Group 1', (
Expand Down
19 changes: 1 addition & 18 deletions tests/regressiontests/model_fields/tests.py
@@ -1,6 +1,5 @@
import datetime
from decimal import Decimal
import re

from django import test
from django import forms
Expand All @@ -9,7 +8,7 @@
from django.db.models.fields.files import FieldFile
from django.utils import unittest

from models import Foo, Bar, Baz, Whiz, BigD, BigS, Image, BigInt, Post, NullBooleanModel, BooleanModel, Document
from models import Foo, Bar, Whiz, BigD, BigS, Image, BigInt, Post, NullBooleanModel, BooleanModel, Document

# If PIL available, do these tests.
if Image:
Expand Down Expand Up @@ -96,29 +95,13 @@ def test_lookup_really_big_value(self):
# This should not crash. That counts as a win for our purposes.
Foo.objects.filter(d__gte=100000000000)

class BazForm(forms.ModelForm):
class Meta:
model = Baz

class ForeignKeyTests(test.TestCase):
def test_callable_default(self):
"""Test the use of a lazy callable for ForeignKey.default"""
a = Foo.objects.create(id=1, a='abc', d=Decimal("12.34"))
b = Bar.objects.create(b="bcd")
self.assertEqual(b.a, a)

def test_distinct_choice_limit(self):
"""Doesn't make sense to offer the same ForeignKey multiple times in a form"""
a = Foo.objects.create(a='a', d=Decimal("-1"))
b = Foo.objects.create(a='b', d=Decimal("1"))
bar_a = Bar.objects.create(b='ah', a=a)
bar_b = Bar.objects.create(b='aha', a=a)
bar_b = Bar.objects.create(b='bla', a=b)
form = BazForm()
fk_field = str(form['foo'])
self.assertEqual(len(re.findall(r'value="%d"' % b.pk, fk_field)), 0)
self.assertEqual(len(re.findall(r'value="%d"' % a.pk, fk_field)), 1)

class DateTimeFieldTests(unittest.TestCase):
def test_datetimefield_to_python_usecs(self):
"""DateTimeField.to_python should support usecs"""
Expand Down

0 comments on commit 0a3aae8

Please sign in to comment.