Created
March 5, 2014 17:55
-
-
Save loic/9372614 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/django/contrib/contenttypes/fields.py b/django/contrib/contenttypes/fields.py | |
index 39fbe0e..dab3d69 100644 | |
--- a/django/contrib/contenttypes/fields.py | |
+++ b/django/contrib/contenttypes/fields.py | |
@@ -30,13 +30,11 @@ class GenericForeignKey(six.with_metaclass(RenameGenericForeignKeyMethods)): | |
fields. | |
""" | |
- def __init__(self, ct_field="content_type", fk_field="object_id", for_concrete_model=True, | |
- related_name=None): | |
+ def __init__(self, ct_field="content_type", fk_field="object_id", for_concrete_model=True): | |
self.ct_field = ct_field | |
self.fk_field = fk_field | |
self.for_concrete_model = for_concrete_model | |
self.editable = False | |
- self.related_name = related_name | |
def contribute_to_class(self, cls, name): | |
self.name = name | |
@@ -242,11 +240,11 @@ class GenericForeignKey(six.with_metaclass(RenameGenericForeignKeyMethods)): | |
class GenericRelation(ForeignObject): | |
"""Provides an accessor to generic related objects (e.g. comments)""" | |
- def __init__(self, to, related_name='+', **kwargs): | |
+ def __init__(self, to, **kwargs): | |
kwargs['verbose_name'] = kwargs.get('verbose_name', None) | |
kwargs['rel'] = GenericRel( | |
- self, to, related_name=related_name, | |
- limit_choices_to=kwargs.pop('limit_choices_to', None)) | |
+ self, to, limit_choices_to=kwargs.pop('limit_choices_to', None), | |
+ related_query_name=kwargs.pop('related_query_name', None)) | |
# Override content-type/object-id field names on the related class | |
self.object_id_field_name = kwargs.pop("object_id_field", "object_id") | |
self.content_type_field_name = kwargs.pop("content_type_field", "content_type") | |
@@ -527,6 +525,7 @@ def create_generic_related_manager(superclass): | |
class GenericRel(ForeignObjectRel): | |
- def __init__(self, field, to, related_name=None, limit_choices_to=None): | |
- super(GenericRel, self).__init__(field=field, to=to, related_name=related_name, | |
- limit_choices_to=limit_choices_to, on_delete=DO_NOTHING) | |
+ def __init__(self, field, to, related_name=None, limit_choices_to=None, related_query_name=None): | |
+ super(GenericRel, self).__init__(field=field, to=to, related_name=related_query_name or '+', | |
+ limit_choices_to=limit_choices_to, on_delete=DO_NOTHING, | |
+ related_query_name=related_query_name) | |
diff --git a/tests/generic_relations/models.py b/tests/generic_relations/models.py | |
index 12790f6..5d24e01 100644 | |
--- a/tests/generic_relations/models.py | |
+++ b/tests/generic_relations/models.py | |
@@ -68,7 +68,7 @@ class Animal(models.Model): | |
common_name = models.CharField(max_length=150) | |
latin_name = models.CharField(max_length=150) | |
- tags = GenericRelation(TaggedItem, related_name='animal') | |
+ tags = GenericRelation(TaggedItem, related_query_name='animal') | |
comparisons = GenericRelation(Comparison, | |
object_id_field="object_id1", | |
content_type_field="content_type1") | |
@@ -116,7 +116,7 @@ class Rock(Mineral): | |
class ManualPK(models.Model): | |
id = models.IntegerField(primary_key=True) | |
- tags = GenericRelation(TaggedItem, related_name='manualpk') | |
+ tags = GenericRelation(TaggedItem, related_query_name='manualpk') | |
class ForProxyModelModel(models.Model): |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment