【发布时间】:2019-02-19 05:45:30
【问题描述】:
class PurchaseOrder(models.Model):
purchase_order_id = models.AutoField(primary_key=True)
purchase_order_number = models.CharField(unique=True)
vendor = models.ForeignKey(Vendor)
我正在创建采购订单(po)表。创建 po 时,我必须将purchase_order_number 更新为“PO0”+purchase_order_id ex PO0123(123 是主键)。所以我在模型中使用 def save 来完成这个
def save(self):
if self.purchase_order_id is not None:
self.purchase_order_number = "PO"+str(self.purchase_order_id)
return super(PurchaseOrder, self).save()
单次创建可以正常工作,但是当我尝试使用 locust(测试工具)创建大量数据时,它会给出错误duplicate entry for PurchseOrdernumber 我们可以在模型本身中修改字段值吗?
purchase_order_number = models.CharField(unique=True,default=("PO"+self.purchase_order_id )
【问题讨论】:
-
不,我问的是不行,有没有这样的方法?
-
问题得到解决我忘了在这里提到,在创建采购订单后,在success_url方法中我正在使用purchase_order_id并修改purchase_order_number`“PO”+str(self.purchase_order_id)`
标签: django django-models django-forms django-views locust