首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >单个Django模型,多个表?

单个Django模型,多个表?
EN

Stack Overflow用户
提问于 2011-02-18 08:18:38
回答 1查看 18.2K关注 0票数 27

我在一个MySQL数据库中有几个临时表,它们共享相同的模式并具有动态名称。如何使用Django与这些表进行交互?单个模型可以从多个表中绘制数据吗?

EN

回答 1

Stack Overflow用户

发布于 2015-04-02 18:43:05

为您的表动态创建模型。

代码语言:javascript
运行
复制
from django.db import models
from django.db.models.base import ModelBase

def create_model(db_table):

    class CustomMetaClass(ModelBase):
        def __new__(cls, name, bases, attrs):
            model = super(CustomMetaClass, cls).__new__(cls, name, bases, attrs)
            model._meta.db_table = db_table
            return model

    class CustomModel(models.Model):

        __metaclass__ = CustomMetaClass

        # define your fileds here
        srno = models.IntegerField(db_column='SRNO', primary_key=True)

    return CustomModel

你就可以开始查询数据库了。

代码语言:javascript
运行
复制
In [6]: t = create_model('trial1')

In [7]: t._meta.db_table
Out[7]: 'trial1'

In [8]: t.objects.all()  # default db
Out[8]: [<CustomModel: CustomModel object>, '(remaining elements truncated)...']

In [9]: t.objects.using('test').all()  # test db
Out[9]: [<CustomModel: CustomModel object>, '(remaining elements truncated)...']
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5036357

复制
相关文章

相似问题

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