【问题标题】:How to remove current object from recursive many to many query set in Django admin site如何从 Django 管理站点中的递归多对多查询集中删除当前对象
【发布时间】:2016-08-10 14:11:28
【问题描述】:

如果我定义一个递归关系如下的Django模型,

Class M(models.Model):
    a = models.CharField(max_length=1)
    ms = models.ManyToManyFied('self')

然后在管理站点中输入数据,例如 M.a = 'a'、'b' 和 'c'。 Django 管理站点的更改表单将显示 ms 包含“a”、“b”、“c”。如何从列表中删除“a”,因为我不希望它分配给当前的 M.a 本身?

【问题讨论】:

    标签: django django-models django-admin


    【解决方案1】:

    这不是您问题的直接答案,但它可能是一个很好的实用解决方案。您可以创建一个 ModelForm 来验证您的数据(即,阻止模型设置与自身的关系),然后自定义模型的管理类以在管理站点中使用该自定义表单。这篇 SO 帖子详细描述了如何:Django ManyToMany model validation

    【讨论】:

    • 这是一个很好的实用解决方案,谢谢。但就像你说的那样,它没有直接回答我的问题,但你的解决方案还是有帮助的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-02
    • 2021-05-29
    • 2011-09-14
    • 2017-08-12
    • 1970-01-01
    相关资源
    最近更新 更多