当前位置: 首页 > 面试题库 >

Django Model继承查询中央表

万知
2023-03-14
问题内容

我有一个解决方案,我认为我可以照顾模型继承,但是现在再来看一下,它实际上并不能解决我的问题。我希望能够调用一个模型,然后让我可以访问子模型的字段。对于继承,我仍然必须将子模型名称放在命令行中,这会破坏整个目的。这是我想要的示例:

class LessonModule(models.Model):
    lesson = models.ForeignKey('Lesson')
    name = models.CharField(max_length=100, blank=True)


class ProfileImage(LessonModule):
    file_loc = models.ImageField(upload_to="profiles/")
    detail_file_loc = models.ImageField(upload_to="profiles/", blank=True)

    def render(self):
        t = loader.get_template("template/profile_image.html")
        c = Context({'image_path': self.file_loc.url})
        return t.render(c)

    def __unicode__(self):
        return '[prof: %d]' % self.id

class Note(LessonModule):
    def __unicode__(self):
        return '[note: %d]' % self.id

    def render(self):
        return self.id

我想做的是:

module = LessonModule.objects.get(pk=20)
module.render()

并使其运行相应的渲染功能。例如,如果pk与Note模型对齐,则它将仅返回self.id。当然,这简化为我要使用这些功能执行的操作。

我不必使用模型继承。看起来这是最好的方法。我只希望中心区域查找所有可能的模块。

我还将使用它从LessonModule中的课程外键中拉出所有分配给Lesson的LessonModule。


问题答案:

我没有用过,但是这个项目看起来像您想要的:https :
//code.google.com/p/django-polymorphic-
models/

您可以请求LessonModule.objects.all(),然后将.downcast()每个对象自动添加到ProfileImage或Note中。

或将PolymorphicMetaclass添加到LessonModule中,以始终从查询集中检索ProfileImage和Note对象。

请注意额外查询的成本… Django模型中的多态性是通过表联接而不是纯python代码完成的。



 类似资料:
  • 我有4个实体: ,,, 和4个表: 现在我想在一个查询中选择所有有课程的用户(如果存在的话)(注意用户没有课程)这个select生成如下所示: 您可以清楚地看到,Hibernate没有与t_student_course表连接 我正在使用Hibernate 4.1 Final 问题:Hibernate支持这样的查询吗 a)如果支持,那么为什么它不为实体获取课程? b)如果不支持,我如何选择所有的用户

  • 我对JPA中的继承是新手。我不知道如何查询这样的内容: 让我们假设一个联接继承映射,其中a是一个具有'id'和'name'的实体。还有从A继承的实体A1和A2。A1提供字段'int1',A2提供字段'int2'

  • 假设类“X”映射到表“X”,类“A”映射到表“A”,类“B”映射到表“B”。 表X结构:(X_ID,一些其他列表A结构:(A_Id,X_Id,一些其他列)表B结构:(A_Id,一些其他列)...表B也有A_Id “B”类扩展了“A”类。我们将它们的映射文件都设置为: “A”类父映射文件: “B”类映射文件: 现在,我有一个SQL查询,如下所示,我需要使用hibernate criteria API

  • 我在继承和ElasticsearchRepository方面有一些问题。我的代码(简短版本):实体: 存储库: 我的问题是:我能够将数据放入弹性搜索中,但无法检索它们。如果我做一个存储库。findall()它可以工作。如果我做一个存储库。findWithUri(uri)它不工作(空结果)findByUri的分析异常 我试图搜索示例:https://github.com/spring-project

  • 本文向大家介绍JavaScript中的继承之类继承,包括了JavaScript中的继承之类继承的使用技巧和注意事项,需要的朋友参考一下 继承简介       在JS中继承是一个非常复杂的话题,比其他任何面向对象语言中的继承都复杂得多。在大多数其他面向对象语言中,继承一个类只需使用一个关键字即可。在JS中想要达到继承公用成员的目的,需要采取一系列措施。JS属于原型式继承,得益于这种灵活性,我们既可以

  • 我很难启动服务器,因为它抱怨在查询中找不到继承的属性。 我的问题是,既然我试图将它移动到继承模型(联接),我如何在带注释的查询中引用继承的属性? (注意,该属性是私有可见性,在BaseContent中使用public getter/setter) 谢谢。