Changeset 8165
- Timestamp:
- 07/31/08 19:27:40 (4 months ago)
- Files:
-
- django/trunk/django/forms/models.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/forms/models.py
r8060 r8165 442 442 if len(fks_to_parent) == 1: 443 443 fk = fks_to_parent[0] 444 if not isinstance(fk, ForeignKey) or fk.rel.to != parent_model: 444 if not isinstance(fk, ForeignKey) or \ 445 (fk.rel.to != parent_model and 446 fk.rel.to not in parent_model._meta.parents.keys()): 445 447 raise Exception("fk_name '%s' is not a ForeignKey to %s" % (fk_name, parent_model)) 446 448 elif len(fks_to_parent) == 0: … … 448 450 else: 449 451 # Try to discover what the ForeignKey from model to parent_model is 450 fks_to_parent = [f for f in opts.fields if isinstance(f, ForeignKey) and f.rel.to == parent_model] 452 fks_to_parent = [ 453 f for f in opts.fields 454 if isinstance(f, ForeignKey) 455 and (f.rel.to == parent_model 456 or f.rel.to in parent_model._meta.parents.keys()) 457 ] 451 458 if len(fks_to_parent) == 1: 452 459 fk = fks_to_parent[0]
