Liz*_*Liz 0 django entity-relationship django-models
我是 Django 的新手。我有 2 个简单的对象,我们称它们为 - File 和 FileGroup: - FileGroup 可以保存一个文件列表,根据“顺序”字段进行排序。- 每个文件可以与多个组相关联。
所以基本上,数据库表将是:1) File 2) File_Group 3) File_Group_Mapping 表,除了文件和文件组的 fk 之外,还有一个名为“order”的列。
这里存在多对多关系,但 File 对象不应该知道 FileGroup 的存在(在我的情况下没有意义)
我的问题 - 有没有办法在这里创建单向多对多/一对多关系?如何使用 django 对其进行建模?
我找不到通过 django 使其成为单向的方法。我看到了一个使用类似的解决方案 -
class FileGroup(...):
files = models.ManyToManyField(File, through='FileGroupMapping')
Run Code Online (Sandbox Code Playgroud)
但这将使 File 对象知道 FileGroup。
我也可以通过在模型文件中映射 File_Group_Mapping 表来做到这一点 -
class FileGroupMapping(...):
files = models.ForeignKey(File)
groups = models.ForeignKey(FileGroup)
order = models...
Run Code Online (Sandbox Code Playgroud)
通过 django 执行此操作的最佳方法是什么?
谢谢
我也是一个休眠用户。我完全理解您在寻找什么,只需尝试在您的多对多关系中使用属性“对称 = False”,这将使关系单向。
class FileGroup(models.Model):
files = models.ManyToManyField(File, symmetrical = False)
Run Code Online (Sandbox Code Playgroud)
这应该可以解决问题!