python - Django原始查询动态查询

标签 python mysql django

我有这个模型:

class Stock(models.Model):
    productstockid = models.AutoField(db_column='ProductStockID', primary_key=True)
    productid = models.ForeignKey(Product, models.DO_NOTHING, db_column='ProductID')
    quantity = models.IntegerField(db_column='Quantity')
    stocklocationid = models.ForeignKey('StockLocation', models.DO_NOTHING, db_column='StockLocationID')

    class Meta:
        unique_together = ('productid', 'stocklocationid',)
        managed = False
        db_table = 'stock'

要在列中填充库存位置表(django-tables2),我需要这样的查询。

query_text = 'SELECT *'
for s in StockLocation.objects.all():
    query_text += ', SUM(CASE WHEN stocklocationid_id = ' + str(s.stocklocationid) + ' THEN quantity ELSE 0 END) AS ' + s.sl_name
query_text += ' FROM stock GROUP BY productid'
datatest = Stock.objects.raw(query_text)

但是它不起作用。 Django 能够管理它吗?

最佳答案

表名称的格式为appname_modelname。例如,如果您的应用名称为 mystock,则您的 SQL 语句应以以下内容结尾:

query_text += ' FROM mystock_stock GROUP BY productid_id'

关于python - Django原始查询动态查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35601569/

相关文章:

python - 尝试在 Windows 7 中的 Anaconda(python) 上安装 pymc 并出现奇怪的错误?

python - Django make_password 以编程方式创建大量用户列表太慢

python - Django 与 Heroku 上的 Postgresql - settings.DATABASES 配置不当。请提供 NAME 值

php - 论坛上下文中的 mysqli_real_escape_string() 或addslashes()

php - 在 PHP/MySql 中插入并显示条形码

python - 缩短 HTML 内容 python/django

python - Django:根据相关对象限制外键选择

python - 在构建编码器/解码器模型之前训练自动编码器是否有效?

php - 登录和退出报告系统/获取用户名和用户ID

python - 获取 : invalid input syntax for uuid: "" when using django-uuidfield as primary key for a model