【问题标题】:Django model from multiple databes tables来自多个数据库表的 Django 模型
【发布时间】:2018-02-26 13:53:25
【问题描述】:

我想问是否有一种方便的方法可以让我从多个表中创建一个 django 模型。我正在寻找可以用类似方式编写的解决方案:

class ClientTeamContacts(models.Model):
    attribute_1 = models.CharField(db_column='ss',db_table = 'xxx')
    attribute_2 = models.CharField(db_column='cc',db_table = 'yyy')

我会感谢每一个可以提供解决方案的建议。

【问题讨论】:

    标签: python django django-models django-rest-framework


    【解决方案1】:

    不幸的是,在没有破解 django 核心的情况下,我认为你可以期待的最好的事情是这样的:

    class ClientTeamContacts(models.Model):
        attribute_1 = models.ForeignKey('xxx', on_delete=models.CASCADE)
        attribute_2 = models.ForeignKey('yyy', on_delete=models.CASCADE)
    

    这将允许您访问和修改 SS 和 CC,尽管它们位于不同的表上。

    record = ClientTeamContacts.objects.get(xxx.ss = 'Smith')
    record.xxx.ss = 'Brown'
    record.save()
    

    或者,研究使用抽象基类,它们抽象出公共数据,并可能提供一种不同的方式来解决您的问题:

    https://docs.djangoproject.com/en/2.0/topics/db/models/#abstract-base-classes

    【讨论】:

    • 感谢您的建议,但如果您使用大量表和序列化程序,这种方法可能很难应用,不幸的是我们无法更改数据库结构,我们无法写入数据库......我们只能这样做选择,然后我们创建聚合数据的 json 文档
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 1970-01-01
    • 2014-09-17
    • 1970-01-01
    相关资源
    最近更新 更多