1
6
我知道这要晚很多,但我需要做一些类似的事情,找不到太多。我在一些源代码中找到了答案 here ,但也编写了一个示例类方法。
但是,我不知道如何让我的表单验证与此方法一起工作;因此它当然可以得到更多的改进;可能意味着数据库重构可能是最好的长期解决方案… |
2
8
这有点像黑客,但这很管用:
|
3
1
取决于您将使用哪种模型继承。见 http://docs.djangoproject.com/en/dev/topics/db/models/#model-inheritance 三种经典款式。因为听起来你想吞咽那些排除抽象基类的对象。 如果您想在数据库中为燕子vs非洲燕子vs欧洲燕子存储不同的信息,那么您需要使用MTI。正如Django官方模型所建议的那样,MTI最大的问题是多态性不能正常工作。也就是说,如果从数据库中获取一个燕子对象,它实际上是一个非洲燕子对象,那么就不会得到一个非洲燕子实例。(见 this question 比如Django Model Utils InheritanceManager 有助于克服这一点。 如果您有通过此更改需要保留的实际数据,请使用 South migrations . 进行两次迁移——第一次是更改模式,另一次是将适当对象的数据复制到子类中。 |
4
0
我建议使用 django-model-utils's InheritanceCastModel。这是我喜欢的一个实现。你可以在djangosnippets和一些博客中找到更多,但在浏览完它们之后,我选择了这一个。希望有帮助。 |
5
0
另一种(过时的)方法:如果你不介意保留家长的ID,你可以从家长的属性创建全新的孩子实例。我就是这样做的:
一旦运行该实例,将创建一个新的AfricanSwallow实例,替换每个初始的Swallow实例。 也许这能帮助别人:) |
nadermx · Django中的原始sql查询问题 2 年前 |
liansheng · 在Django。如何使用字段长度[重复]排序 6 年前 |
bkramer · 订单重要时成功尝试分组查询 6 年前 |
martin_crd · Django中多个表的筛选和排序结果 6 年前 |
Phil Sheard · 使用大型子查询优化Django查询 6 年前 |
Max Malysh · 如何从Django找到Postgres版本? 6 年前 |