回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我想知道多对多领域的相关名称。m2m字段位于模型“组”和“选择”之间,在组模型中定义如下:</p>
<pre><code>lections = models.ManyToManyField(Lection, blank=True)
</code></pre>
<p>字段如下所示:</p>
<pre><code><django.db.models.fields.related.ManyToManyField object at 0x012AD690>
</code></pre>
<p>打印的<code>field.__dict__</code>是:</p>
<pre><code> {'_choices': [],
'_m2m_column_cache': 'group_id',
'_m2m_name_cache': 'group',
'_m2m_reverse_column_cache': 'lection_id',
'_m2m_reverse_name_cache': 'lection',
'_unique': False,
'attname': 'lections',
'auto_created': False,
'blank': True,
'column': 'lections',
'creation_counter': 71,
'db_column': None,
'db_index': False,
'db_table': None,
'db_tablespace': '',
'default': <class django.db.models.fields.NOT_PROVIDED at 0x00FC8780>,
'editable': True,
'error_messages': {'blank': <django.utils.functional.__proxy__ object at 0x00FC
7B50>,
'invalid_choice': <django.utils.functional.__proxy__ object
at 0x00FC7A50>,
'null': <django.utils.functional.__proxy__ object at 0x00FC7
A70>},
'help_text': <django.utils.functional.__proxy__ object at 0x012AD6F0>,
'm2m_column_name': <function _curried at 0x012A88F0>,
'm2m_db_table': <function _curried at 0x012A8AF0>,
'm2m_field_name': <function _curried at 0x012A8970>,
'm2m_reverse_field_name': <function _curried at 0x012A89B0>,
'm2m_reverse_name': <function _curried at 0x012A8930>,
'max_length': None,
'name': 'lections',
'null': False,
'primary_key': False,
'rel': <django.db.models.fields.related.ManyToManyRel object at 0x012AD6B0>,
'related': <RelatedObject: mymodel:group related to lections>,
'related_query_name': <function _curried at 0x012A8670>,
'serialize': True,
'unique_for_date': None,
'unique_for_month': None,
'unique_for_year': None,
'validators': [],
'verbose_name': 'lections'}
</code></pre>
<p>现在应该通过一个election实例访问该字段。所以这是由<code>lection.group_set</code>完成的</p>
<p>但是我需要动态地访问它,所以需要从某个地方获取相关的_name属性。</p>
<p><a href="http://docs.djangoproject.com/en/dev/ref/models/fields" rel="nofollow noreferrer">Here</a>在文档中,有一个注意事项是可以访问<code>ManyToManyField.related_name</code>,但无论如何这对我的。。</p>
<p>很感谢你的帮助。
提前谢谢。</p>
<p>编辑:
是否需要将一个类放在我的所有模型之上,该类指定相关的_name属性,因此,每个模型都有一个相似的名称?比如这里?->;docs.djangoproject.com/en/dev/topics/db/models/#小心相关名称</p>