我有这个模型:
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/