我正在使用Django 1.10(Python 3)创建一个站点。目的是追踪我的书和我读过的书。
我想为几个不同的模型制作简单的CRUD页面。我目前使用的不同模型有:书籍,作者和出版商。这个清单可能会增长。我读过有关将您的网站拆分为较小的应用程序的信息。因此,CRUD页面的一个应用程序,一个用于作者,一个用于发布者。
这是Django的意图吗?如果是这样,就会出现问题。我们如何分离模型? Books模型具有依赖于Author和Publisher的字段。但由于他们现在在自己的应用程序中,我应该如何访问它?我不喜欢从另一个应用程序导入,因为它们应该是单独的应用程序。
答案 0 :(得分:0)
如果它们相关,则不要将它们分开。除此之外,您可以重新考虑模型的结构并重新构建它们。
我不知道确切字段属于Author
和Publisher
,但您may
将它们合并到一个模型中。这只是一个想法。
或者您可以创建Author
,Publisher
等表格。
有一个名为Normalization的进程,它基本上倾向于创建包含少量列的表而不是创建一个大的表。
此外,您也可以查看this thread。
答案 1 :(得分:0)
我想为几个不同的模型制作简单的CRUD页面。该 我现在拥有的不同模特有:书籍,作者和 出版商。这个清单可能会增长。我读过有关分裂的内容 您的网站变成了较小的应用所以一本应用程序的书CRUD页面,一个 作者和发布者之一。
我个人认为单个应用程序可以轻松处理这三个模型。
这是Django的意图吗?如果是这样,就会出现问题。我们怎么样 分开模特? Books模型具有依赖于Author的字段 和发布者。但既然他们现在都在自己的应用程序中,我怎么样 应该访问它?我不喜欢从中导入的想法 另一个应用程序,因为它们应该是单独的应用程序。
要访问您需要实现外键关系的字段。查看文档here。
如果您仍然认为模型应该存在于不同的应用程序中,则需要在使用之前导入它们。假设Book模型需要Author模型。您需要做的是导入Author模型并将其链接到具有ManytoMany或ForeignKey关系的书模型。:
from django.db import models
from app_authors.model import Author
class Book()models.Model:
author = ForeignKey(Author, null=True, blank = True, verbose_name = 'Author')