Django ForeignKey关系约束

Django ForeignKey关系约束,django,django-models,django-orm,Django,Django Models,Django Orm,我是否可以强制执行ForeignKey关系,使一名记者撰写的文章不能由另一名记者撰写 我正在尝试实现“对象包含”,并支持将文章分配给记者文件夹 例如,报告员“文件夹”包含文章a、B、C,如果文章a、B、C“分配给”(即包含在)报告员文件夹中,则不能将它们分配给报告员两个。使用。从文档中: 要定义一对一关系,请使用OneToOneField。在本例中,场所也可以是餐厅: 文章有外键至记者。因此,每篇文章只属于一名记者。然后将名为文件夹的属性添加到文章中,并将其用作散列键,以确定文件夹中“包含

我是否可以强制执行
ForeignKey
关系,使一名记者撰写的文章不能由另一名记者撰写

我正在尝试实现“对象包含”,并支持将文章分配给记者文件夹

例如,报告员“文件夹”包含文章a、B、C,如果文章a、B、C“分配给”(即包含在)报告员文件夹中,则不能将它们分配给报告员两个。

使用。从文档中:

要定义一对一关系,请使用OneToOneField。在本例中,场所也可以是餐厅


文章
外键
记者
。因此,每篇
文章
只属于一名
记者
。然后将名为
文件夹
的属性添加到
文章
中,并将其用作散列键,以确定
文件夹
中“包含”哪些
文章

要为给定的
报告者查找
文件夹中名为
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')