Django 从方法创建模型的实例

Django 从方法创建模型的实例,django,django-models,Django,Django Models,我刚来Django,有点问题。 我在商品模型中有一个方法: @transaction.atomic def payment(self): if self.owner.balance > self.price and self.active is False: self.act_time_till = now() + timedelta(days=1) self.owner.balance -= self.price # here i

我刚来Django,有点问题。 我在商品模型中有一个方法:

@transaction.atomic
def payment(self):
    if self.owner.balance > self.price and self.active is False:
        self.act_time_till = now() + timedelta(days=1)
        self.owner.balance -= self.price
        # here i need to create a new Invoice object
        self.save()
        return True
    else:
        return False
我有一个不同的型号-发票:

class Invoice(models.Model):
    commodity = models.ForeignKey(Commodity, on_delete=models.PROTECT)
    paid_till = models.DateTimeField(blank=False, null=False)
    value = models.DecimalField(max_digits=3, decimal_places=2, blank=False, null=False)
如何在每次付款时创建发票实例?
谢谢

您可以在这个方法内部调用

@transaction.atomic
def payment(self):
   if self.owner.balance > self.price and self.active is False:
     self.act_time_till = now() + timedelta(days=1)
     self.owner.balance -= self.price
     # here i need to create a new Invoice object
     self.save()
     ## After this line you can create invoice object instance
     Invoice.objects.create(commodity=self, paid_till=self.act_paid_till, value=self.price)  
    return True
   else:
     return False

您可以在这个方法内部调用

@transaction.atomic
def payment(self):
   if self.owner.balance > self.price and self.active is False:
     self.act_time_till = now() + timedelta(days=1)
     self.owner.balance -= self.price
     # here i need to create a new Invoice object
     self.save()
     ## After this line you can create invoice object instance
     Invoice.objects.create(commodity=self, paid_till=self.act_paid_till, value=self.price)  
    return True
   else:
     return False

您可以通过调用
Invoice.objects.create(**data)
创建一个实例,也可以在任何需要的地方使用它。您可以通过调用
Invoice.objects.create(**data)
创建一个实例,也可以在任何需要的地方使用它谢谢!已将此标记为错误。我在字段类型方面遇到了问题,但我认为我做错了。谢谢!已将此标记为错误。我在字段类型方面遇到了问题,但我认为我做错了。