id summary reporter owner description type status component version severity resolution keywords cc stage has_patch needs_docs needs_tests needs_better_patch easy ui_ux 2653 multiple manytomanyfield on self causes complaint in manage.py shaleh@… Russell Keith-Magee "Consider: {{{ #!python class Foo(models.Model): related = models.ManyToManyField('self') suggestions = models.ManyToManyField('self') }}} Both relations should be symmetrical. If A suggests B, B suggests A (for this code base anyways). What I expected to happen is adding B to A would add A to B. Instead I get: app.foo: Accessor for m2m field 'menu_suggestions' clashes with related m2m field 'Foo.foo_set'. Add a related_name argument to the definition for 'suggestions'. app.foo: Accessor for m2m field 'related' clashes with related m2m field 'Foo.foo_set'. Add a related_name argument to the definition for 'related'. Doesn't matter whether I set symmetrical to false or true. The confusion stems from model-api.txt which states: {{{ ``symmetrical`` Only used in the definition of ManyToManyFields on self. Consider the following model: class Person(models.Model): friends = models.ManyToManyField(""self"") When Django processes this model, it identifies that it has a ``ManyToManyField`` on itself, and as a result, it doesn't add a ``person_set`` attribute to the ``Person`` class. Instead, the ``ManyToManyField`` is assumed to be symmetrical -- that is, if I am your friend, then you are my friend. If you do not want symmetry in ``ManyToMany`` relationships with ``self``, set ``symmetrical`` to ``False``. This will force Django to add the descriptor for the reverse relationship, allowing ``ManyToMany`` relationships to be non-symmetrical. }}}" defect closed Core (Other) dev normal fixed Unreviewed 0 0 0 0 0 0