我正在尝试将citus数据(https://www.citusdata.com/)与Django一起使用。在
到目前为止,除了尝试save
一个已经保存的模型外,大多数工作都正常:
NotSupportedError: modifying the partition value of rows is not allowed
这是因为django总是在更新SQL中包含每个字段,即使该字段没有更改。在
在Citus中,必须选择一个字段作为分区字段,然后不能更改它。所以,当我保存一个对象时,分区键并不在update语句中,即使它没有改变。在
我知道您可以将update_fields
关键字arg传递给save
方法,但是我想知道是否可以告诉django在更新时不要包含字段?在
Django不提供“开箱即用”的功能。您可以重写类的
save
方法,将分区字段以外的所有字段设置为update_fields
的值如果您不想在每次更改类的字段时都更新此方法,那么一个更为动态的选项是使用^{} API获取类的所有字段并排除分区字段
^{pr2}$Django还可以使用其他几种方法来更新您的模型。也许所有模型从这些方法的实现中继承的基类可以工作
相关问题 更多 >
编程相关推荐