python - 如何将模型对象作为初始值传递给表单
问题描述
我想将def get_total_everything()
我的函数class Order models
作为初始值传递到我的表单中。但它似乎我错过了一些东西。我下面的代码会给你更多的理解。感谢期待
class PaymentForm(forms.ModelForm):
class Meta:
model = Payment
fields = ['firstname', 'lastname', 'email', 'amount']
def __init__(self, *args, **kwargs):
self.request = kwargs.pop("request")
super(PaymentForm, self).__init__(*args, **kwargs)
self.fields['amount'].initial = self.amount.get_total_everything()
#Model
class Order(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
item = models.ManyToManyField(OrderItem)
date_created = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.user.username
def get_total_everything(self):
total = 0
for order_item in self.item.all():
total += order_item.get_final_price()
return total
class Payment(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
firstname = models.CharField(max_length=250)
lastname = models.CharField(max_length=250)
email = models.EmailField()
amount = models.ManyToManyField(Order)
def __str__(self):
return self.user.username