将Django.update()与.get()一起使用
我有一张发票台将Django.update()与.get()一起使用,django,django-models,orm,Django,Django Models,Orm,我有一张发票台 # app/models.py class tbl_invoice(models.Model): invoice_id = models.IntegerField(blank=True, null=True) invoice_number = models.IntegerField(blank=True, null=True) quotation_id
# app/models.py
class tbl_invoice(models.Model):
invoice_id = models.IntegerField(blank=True, null=True)
invoice_number = models.IntegerField(blank=True, null=True)
quotation_id = models.IntegerField(blank=True, null=True)
quotation_number = models.IntegerField(blank=True, null=True)
invoiced = models.CharField(max_length=50, default='', blank=True, null=True)
此表包含发票和报价记录,系统用户可以选择将任何报价转换为发票,但报价记录仍将与新生成的发票记录一起保留
这是我的观点
#views.py
obj = tbl_invoice.objects.get(pk='someId') # getting existing record with pk
obj.pk = None
obj.invoice_id = 'someId'
obj.quotation_id = None
obj.invoice_number = 'someValue'
obj.quotation_number = None
obj.invoiced = 'no'
obj.type_status = 'invoice'
obj.save()
上面的代码工作正常,它创建了一个新的发票记录,还维护了旧的报价记录
但是,在将报价转换为发票后,我还想将报价记录上的发票
值更新为是
为此,我努力了
obj.update(invoiced = 'yes')
但是.update()
在.get()
如何从现有记录创建新记录并同时更新旧记录
还是必须使用多个查询
谢谢你的帮助。简单地说
old_obj=tbl_invoice.objects.get(pk='someId')#使用pk获取现有记录
#创建新对象
新对象=旧对象
#更改新对象值
new_obj.pk=无
new_obj.invoice_id='someId'
新建对象报价单\u id=无
新发票号='someValue'
新对象报价单编号=无
新发票=否
新建对象类型状态='发票'
#更改旧对象值
旧发票=“是”
#保存对象
新建对象保存()
旧对象保存()
啊!简单但有效,为什么我不能想到它。。。无论如何,谢谢你的帮助