Python django admin:如何在管理页面中仅显示属于特定模型的项?

Python django admin:如何在管理页面中仅显示属于特定模型的项?,python,django,Python,Django,我正在学习django来建立我的网站。 我学习了如何创建模型和视图,但现在我有一些关于管理界面的问题。 所以我有一个tis代码: from django.db import models class AudioBook(models.Model): titolo=models.CharField(max_length=250) capitoli=models.ManyToManyField('Chapters') class Chapters(models.Model):

我正在学习django来建立我的网站。 我学习了如何创建模型和视图,但现在我有一些关于管理界面的问题。 所以我有一个tis代码:

from django.db import models

class AudioBook(models.Model):
    titolo=models.CharField(max_length=250)
    capitoli=models.ManyToManyField('Chapters')

class Chapters(models.Model):
    capitolo=models.CharField(max_length=250)
现在,当我添加一本新的有声读物时,我可以看到以前添加到其他有声读物中的章节。这很糟糕。我只想要属于这本有声读物的章节,所以,当我添加一本新的时,列表必须是空的

我尝试了一些方法:添加
limit\u choices\u to=models.Q(audiobook\uu titolo=titolo)
,但不起作用

在命令行中,我可以通过在对象上添加过滤器来检索这些信息,但我可以在管理界面中重现这种情况。 有什么想法吗?我在谷歌上搜索,但没有找到任何对我有帮助的东西


Germano

对于许多关系,Django管理界面允许您查看所有选项的完整列表,然后选择要添加到AudioBook对象中的任何选项。 这并不意味着它们都属于那本有声书。选定的(您添加到有声读物中的)背景通常为灰色

如果该界面让您感到如此困扰,我建议您在章节中添加有声读物外键,而不是您的多人关系:

class Chapters(models.Model):
    capitolo=models.CharField(max_length=250)
    audio_book = models.ForeignKey(AudioBook,on_delete=models.CASCADE)

这与你的情况更相关。您仍然可以轻松访问有声读物的章节。

如果您编写
将选项限制到=models.Q(有声读物标题=models.F('titolo'))
。它返回一个错误:无法解析字段“titol”。选择包括:“有声读物”、“capitolo”、“id”、“testo”。正如我在回答中所建议的,我必须使用外键。