1
2
这个
然后你可以这样做:
我碰巧认为这是Django继承实现中的一个弱点,因为它并不完全反映您通常期望在Python中从对象继承得到的行为,但至少有一个解决方法。因为我几乎不急于用我的正确行为版本提交补丁,所以我不能抱怨:—) 我同意Carl Meyer的意见:在不更改父模型的DB表的情况下自动获取子类,并从父类查询返回子类的实例可能会很昂贵,这与Django关于查询集返回运行该查询集的模型的承诺不一致。 然而,我在实践中仍然发现,姜戈的继承有时会导致一些尴尬的额外步骤。从0.91开始使用了django,并且知道解决对象关系映射问题的所有不同策略都有权衡,我很高兴现在在django继承,并且觉得当前的实现非常出色…所以我不喜欢我最初的回答被认为是对这个项目的轻微反对。 因此,我想我会编辑这个答案以链接到Carl自己在解决方案中提供的答案,如果您不知道子类是什么类型: How do I access the child classes of an object in Django without knowing the name of the child class? . 他在那里提供了使用ContentType框架的建议。仍然有一些间接的影响,但是工具箱中有一个好的、可归纳的选项。 |
2
2
正如你在那篇文章的评论中看到的,这仍然是有争议的讨论,什么是最好的方法。 我也尝试了子类化,但是我遇到了很多问题,而 using profiles 非常适合我。
创建IRCUSER的工作方式如下:
编辑:为什么用户配置文件优雅: 假设,我们正在编写一个webapp,它将表现为多协议聊天。用户可以在icq、msn、jabber、facebook、google talk….. 我们可以通过继承自由地创建一个自定义用户类,它将保存所有附加信息。
这导致
现在让我们用用户配置文件来做
结果:
这可能导致模板中的语法更加神秘,但是我们可以在视图/模板标记中使用一些快捷方式,或者使用
|
3
1
我不认为有办法解决这个问题,因为正如你所说,
见 http://docs.djangoproject.com/en/dev/topics/db/models/#proxy-models :
也许在这种情况下,旧的使用方法
对不起,如果我没帮什么忙。 |
Florent · 如何在Django中聚合多个字段? 1 年前 |
KWunsch · Django没有将pk引入模板 1 年前 |
Akshay mek · Vscode扩展建议不适用于某些文件夹 1 年前 |
Farid · 限制django每个客户的访问 2 年前 |
Blue · 从Django中的输入字段获取用户输入 2 年前 |
4SadMemeXD · 无法在Django中选择相关类别 2 年前 |