首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以复制django-mptt模型吗?

可以复制django-mptt模型吗?
EN

Stack Overflow用户
提问于 2016-10-31 16:50:58
回答 1查看 169关注 0票数 1

假设我有一个django-mptt模型,如下所示:

代码语言:javascript
复制
class Category(MPTTModel):
    name = models.CharField(max_length=50)
    parent = TreeForeignKey('self', null=True, blank=True, related_name='children', db_index=True)

这些类别(和子类别)将作为项目中使用的类别的一种模板。当用户开始一个新项目时,用户将选择要使用的目录、子类别等。用户还应该能够添加/编辑类别。问题是,它们需要特定于项目,以便当创建另一个项目时,用户将从原始/默认类别开始。

有没有办法复制MPTTModel/数据库表,以创建特定于项目的表,其中可以编辑/添加类别,而不会影响默认类别?

我可以想出一种方法来解决这个问题,那就是添加如下内容

代码语言:javascript
复制
projects = models.ManyToManyField(Project)

并创建一个默认/模板项目。这里最好的方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2016-11-01 01:09:44

您有一个正确的想法,即拥有一个" projects“字段来将一个类别与各种项目相匹配。使用具有ForeignKey关系的“项目”字段可能会更好:

代码语言:javascript
复制
project = models.ForeignKey(project)

然后,您可以为每个新项目复制Category,创建一个新的数据库行。这样,如果有人在项目foo上更改了Category栏,也不会影响项目baz,该项目也可以使用Category栏。两个类别栏条目在数据库中将具有不同的主键。

你也可以有一个名为"default“的项目,当用户创建一个新项目时,所有的"default”类别都可以复制。

当然,您需要代码来仅显示用户正在处理的项目中的类别,并在创建新项目时复制这些类别。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40338971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档