Python 更新完整表,而不是django中的单行
我有一个名为TableColumn的表。我用下面的django模型api查询得到ColumnListObj。 现在我更新了这个对象并保存了它Python 更新完整表,而不是django中的单行,python,django,django-models,Python,Django,Django Models,我有一个名为TableColumn的表。我用下面的django模型api查询得到ColumnListObj。 现在我更新了这个对象并保存了它 ColumnListObj = TableColumn.objects.get(columnOne=One,columnTwo=Two) ColumnListObj.column3 = 'SOME TEXT' ColumnListObj.save() 公认的行为: 正在选择的一行(columnOne=1和columnTwo=2)应该得到更新 实际行为:
ColumnListObj = TableColumn.objects.get(columnOne=One,columnTwo=Two)
ColumnListObj.column3 = 'SOME TEXT'
ColumnListObj.save()
公认的行为:
正在选择的一行(columnOne=1和columnTwo=2)应该得到更新
实际行为:
使用所有(columnTwo='Two')
获取更新完成表
注:
1.ColumnOne和ColumnTwo是组合主键。意味着没有重复。
2.我试着调试并在Get之后打印ColumnListObje。它打印相同的所需行
TableColumn的架构(请不要被上述虚拟名称混淆)
我假设要做您想做的事情,django orm必须从数据库中提取数据解析所有数据(可能很复杂,可能不复杂),找到更改的内容,构建更新查询,并将更改提交到数据库。只需更新非常简单,它的工作原理也是一样的。您发布的代码应该只更新一行。但我对你提到的“组合主键”感到困惑:Django不支持这一点。请发布您的型号代码好吗?@DanielRoseman更新。。(请不要被上面的伪名称弄糊涂)但是这个模型是无效的:Django只支持一个主键。您使用的是什么版本?1.5.5,它没有给出任何错误。
class TableColumn(models.Model):
table = models.ForeignKey('TableList',primary_key=True)
table_column_id = models.IntegerField(primary_key=True)
current_column_name = models.CharField(max_length=255)
column_description = models.CharField(max_length=1024, db_column='Column_Description',blank=True)
class Meta:
db_table = 'table_column'