Django ForeignKey关系约束
我是否可以强制执行Django ForeignKey关系约束,django,django-models,django-orm,Django,Django Models,Django Orm,我是否可以强制执行ForeignKey关系,使一名记者撰写的文章不能由另一名记者撰写 我正在尝试实现“对象包含”,并支持将文章分配给记者文件夹 例如,报告员“文件夹”包含文章a、B、C,如果文章a、B、C“分配给”(即包含在)报告员文件夹中,则不能将它们分配给报告员两个。使用。从文档中: 要定义一对一关系,请使用OneToOneField。在本例中,场所也可以是餐厅: 文章有外键至记者。因此,每篇文章只属于一名记者。然后将名为文件夹的属性添加到文章中,并将其用作散列键,以确定文件夹中“包含
ForeignKey
关系,使一名记者撰写的文章不能由另一名记者撰写
文章
有外键
至记者
。因此,每篇文章
只属于一名记者
。然后将名为文件夹
的属性添加到文章
中,并将其用作散列键,以确定文件夹
中“包含”哪些文章
要为给定的报告者查找文件夹中名为Foo
的所有文章
,您可以执行以下查询:
reporter = Reporter.objects.first()
articles_in_folder = reporter.articles_set.filter(folder='Foo')
请注意,文件夹
也可以是一个完整的模型,而不仅仅是一个字符串。一篇文章
将有一个指向文件夹
的ForeingKey,而文件夹
也可以有一个指向记者
的ForeingKey这如何强制将文章a仅包含在记者的文件夹中?似乎这样只能确保每个记者有一篇文章,而不是只在一个文件夹中的特定文章。您也可以执行reporter-ForeingKey->folder-ForeingKey->article,但这需要存在一个文件夹才能有文章。
reporter = Reporter.objects.first()
articles_in_folder = reporter.articles_set.filter(folder='Foo')