我的models.py
中有以下内容:
class Size(models.Model):
size = models.CharField(max_length=20, primary_key=True)
class Book(models.Model):
title = models.CharField(max_length=100, primary_key=True)
size = models.ForeignKey(Size, null=False)
class Pamphlet(models.Model):
title = models.CharField(max_length=100, primary_key=True)
size = models.ForeignKey(Size, null=False)
book = models.ForeignKey(Book, null=True)
最初构建数据库时,会填充Size、Book和Pamphlet表,并且每个Book和Pamphlet都与一个大小相关联。但是,没有设置从小册子到书本的外键。在
这将是一个用户的责任去管理页,并选择哪本书与每本小册子相关联。Django的管理功能可以将显示的表中的此列设置为可编辑的,并且它足够智能,可以自动生成一个下拉选项,显示books表中所有可能的图书,供用户选择。在
然而,这个books表包含数百种选择,我知道只有用户选择一本与小册子大小相同的书才有意义。所以我想过滤Django生成的下拉列表中的选项,只显示与小册子大小相同的书籍。在
我怎样才能做到这一点?在
我看了这里:How do I filter ForeignKey choices in a Django ModelForm?但这似乎不是指Django的管理功能。在
专门化admin的^{} 方法以返回自定义窗体类。该表单类可以在其
__init__
方法中设置其book
字段的queryset
属性,具体取决于它接收到的instance
参数。例如:相关问题 更多 >
编程相关推荐