python - Java 风格文件结构中的 Django 模型

标签 python django django-models

我正在构建一个大型 Django 应用程序,并希望将我的数据模型拆分为“每个文件类”结构,但在尝试这样做时,我遇到了一些更多的循环依赖问题复杂模型。

例如,我有三个模型,都在不同的文件中:

class Book(models.Model):
    title = models.CharField(max_length=35)
    author = models.ForeignKey(Author)
    genre = models.ForeignKey(Genre)

class Genre(models.Model):
    name = models.CharField(max_length=20)
    sample_book = models.ForeignKey(Book)

class Author(models.Model):
    name = models.CharField(max_length=60)
    preferred_genre = models.ForeignKey(Genre)

由于 Book 依赖于 Genre 而 Genre 又依赖于书,当我在任何地方导入 Book 时,它会启动一个循环模型依赖链,因为每个文件都从其他文件导入模型。我怎样才能避免这种情况?这是一种会很快变得非常庞大的项目,所以我不想将所有模型都集中到一个文件中。

最佳答案

您还可以将模型名称指定为字符串:

preferred_genre = models.ForeignKey("Genre")

关于python - Java 风格文件结构中的 Django 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7390456/

相关文章:

python - 来自不同模型的 Django 模型引用

python - 在Python中读取文件时抑制错误消息

python - 如何为 QTableWidget 创建过滤器?

python - 如何使用 django-rest 框架测试客户端发布列表

python - 如何将 query_set 列表转换为包含字典的列表?

python - 具有已存在表的 Django ManyToMany 字段

python - on_delete = models.PROTECT和on_delete = models.CASCADE对Django模型有什么作用?

Google App Engine 上的 Python 脚本,仅从网站抓取更新

python - get_or_create() 恰好接受 1 个参数(给定 2 个)

python - 不断收到 mod_wsgi 和 apache 的致命 Python 错误