【问题标题】:Django: query many2many self referencedDjango:查询many2many自引用
【发布时间】:2017-11-21 04:24:56
【问题描述】:

目前我有这个模型:

class Group(models.Model):
    def __str__(self):
        return(self.name)

    dependency = models.ManyToManyField('self',related_name='group_rel')
    name = models.TextField()


class Publication(models.Model):

    name = models.TextField()
    group = models.ManyToManyField(Group, related_name='group_dependency')

我可以为一组获取所有父亲(组)。

group = Group.objects.filter(pk=1)[0]
group.dependency.all()

但我想查询一组的所有孩子(组)。

dir(group)

['DoesNotExist', 'MultipleObjectsReturned', 'class', 'delattr', 'dict', 'dir ', 'doc', 'eq', '格式', 'ge', 'getattribute'、'gt'、'hash'、'init'、'init_subclass', 'le', 'lt', '模块', 'ne', ' new'、'reduce'、'reduce_ex'、'repr'、'setattr', 'setstate', 'sizeof', 'str', 'subclasshook', 'weakref','_check_column_name_clashes','_check_field_name_clashes','_check_fields','_check_id_field','_check_index_together','_check_local_fields','_check_long_column_names','_check_m2m_through_same_relationship','_check_managers', l', '_check_model_name_db_lookup_clashes', '_check_ordering', '_check_swappable', '_check_unique_together', '_do_insert', '_do_update', '_get_FIELD_display', '_get_next_or_previous_by_FIELD', '_get_next_or_previous_in_order', '_get_pk_val', '_get_unique_checks', '_meta' ,'_perform_date_checks','_perform_unique_checks','_save_parents','_save_table','_set_pk_val','_state','check','clean','clean_fields','date_error_message','delete','dependency',' from_db','full_clean','get_deferred_fields','group_dependency','id','name','objects','pk','prepare_database_save','refresh_from_db','save','save_base','seri alizable_value ', 'unique_error_message', 'validate_unique']

注意:发布是这个问题没有使用。我只展示它是因为有很多人要分组。

【问题讨论】:

标签: django python-3.x django-models


【解决方案1】:

您已将多对多字段命名为 dependency,因此您应该使用它。

group.dependency.all()

【讨论】:

  • 感谢回复,但这返回了该组的所有父亲,而不是该组的所有孩子。
  • 不清楚您在这里将什么视为父母和孩子。但如果你想反过来,那么使用相关名称:group.group_rel.all()
  • 是的,我不清楚我将什么视为父母和孩子,我的错误。我尝试使用group.group_rel.all(),但组没有属性group_relAttributeError: 'Group' object has no attribute 'group_rel'
猜你喜欢
  • 2021-07-30
  • 1970-01-01
  • 2011-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多