Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 更新完整表,而不是django中的单行_Python_Django_Django Models - Fatal编程技术网

Python 更新完整表,而不是django中的单行

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)应该得到更新 实际行为:

我有一个名为TableColumn的表。我用下面的django模型api查询得到ColumnListObj。 现在我更新了这个对象并保存了它

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'