【问题标题】:Generate table using raw SQL query and want to use those tables as ORM in Django使用原始 SQL 查询生成表,并希望在 Django 中将这些表用作 ORM
【发布时间】:2021-08-17 06:28:49
【问题描述】:
table_title = 'transaction_' + username
with connection.cursor() as cursor:
    sql = 'CREATE TABLE ' + table_title + '(id uuid NOT NULL,
    sql += 'amount numeric(10,2) NOT NULL,
    sql += 'CONSTRAINT transaction_pkey' + username + ' PRIMARY KEY (id),'
    cursor.execute(sql)

我已使用此代码创建表。 现在我想要什么:

  • 我想在应用程序的 admin.py 中使用它们
  • 我想在 Django 的管理面板中显示它们
  • 我想将此表用作视图中的 ORM

有可能吗?如果是,那么如何?

【问题讨论】:

  • 为什么不使用 django 模型?您可以在 models.py 中创建模型,并且可以使用内置的管理站点和 ORM。在这里使用原始 SQL 有什么好处?
  • 我必须为每个用户单独创建表空间。示例:如果我使用用户名“rkshaon”注册,那么将为用户“rkshaon”生成不同的交易表。我必须这样做。
  • 你为什么需要那个?您希望为每个用户使用单独的表的原因是什么?
  • 因为我正在做一个项目,每个用户都会有大量数据。所以我要求为每个用户分开表格。
  • 我很确定每个用户的这些庞大数据不会在一个表中,因为每种类型的数据都在不同的表中。也许首先你应该为每种类型的数据设计一个合适的数据库结构,然后看看那里是否有问题。您尝试做的事情听起来不合逻辑。

标签: sql django orm


【解决方案1】:

在执行原始 SQL 时无法使用 ORM。如果你想要一个管理面板,你必须开发自己的自定义管理面板。

【讨论】:

  • 欢迎来到 SO。作为评论而不是答案,这会更好。查看how to answer
猜你喜欢
  • 1970-01-01
  • 2020-08-28
  • 2018-05-15
  • 2022-08-18
  • 2019-08-05
  • 2019-06-11
  • 1970-01-01
  • 2020-07-13
  • 2014-07-01
相关资源
最近更新 更多