Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

[1.4.x] Made custom m2m fields without through easier to use

The change in f105fbe made through=None
m2m fields fail in cases where they worked before. It isn't possible to
create such fields using public APIs. The fix is trivial, so it seems
worth fixing this for custom m2m field users.

This is not a backport from master. Master has gotten enough other
changes to related fields internal API that this fix alone isn't enough
to do any good.
  • Loading branch information...
commit 209f174e58b8d621a06c701281e547a659d9d99c 1 parent 9918b3f
@akaariai akaariai authored
Showing with 3 additions and 1 deletion.
  1. +3 −1 django/db/models/fields/related.py
View
4 django/db/models/fields/related.py
@@ -544,12 +544,14 @@ def __init__(self, model=None, query_field_name=None, instance=None, symmetrical
"a many-to-many relationship can be used." %
instance.__class__.__name__)
-
def _get_fk_val(self, obj, field_name):
"""
Returns the correct value for this relationship's foreign key. This
might be something else than pk value when to_field is used.
"""
+ if not self.through:
+ # Make custom m2m fields with no through model defined usable.
+ return obj.pk
fk = self.through._meta.get_field(field_name)
if fk.rel.field_name and fk.rel.field_name != fk.rel.to._meta.pk.attname:
attname = fk.rel.get_related_field().get_attname()
Please sign in to comment.
Something went wrong with that request. Please try again.