Mysql语法 replace into 对应Django里边的语法怎么写?

Mysql语法 replace into 对应Django里边的语法怎么写?

测试记录1:

  # obj = Invoice.objects.update_or_create(名称='测试')

这个可以正常更新,但是只能填写一个键值;
测试记录2:

  # obj = Invoice.objects.update_or_create(名称='测试',开票状态='已开票')

这个就报错:Duplicate entry '测试' for key '发票信息.PRIMARY'"

对应的models.py

class Invoice(models.Model):
    名称 = models.CharField(primary_key=True, max_length=240, unique=True)

主键值重复导致报错了。
你插入的记录与数据表中原有记录的主键重复了(Duplicate)。所以插入失败。

django不支持REPLACE

你的模型里面都没有“开票状态”字段,添加了之后再试试看