gpt4 book ai didi

python - 在 View form_valid 函数中访问 ModelForm 中保存的数据

转载 作者:行者123 更新时间:2023-12-01 09:08:29 25 4
gpt4 key购买 nike

假设我有两个模型:付款模型和用户模型

模型.py

class Payment(models.Model):
user = models.ManyToManyField(A, blank=True)

class User(models.Model):
name = models.CharField(...)
has_paid = models.BooleanField(...)

表单.py

CreatePayment(forms.ModelForm):
class Meta:
fields = '__all__'

现在,当我提交 CreatePayment 表单时,我可以为每次付款选择多个用户(反之亦然,因为可以在一次付款中为多个用户付款,并且每个用户可以进行多次付款)。有什么办法可以编辑 form_valid view.py 中的方法,以便我可以制作 has_paid字段 仅对于 CreatePayment 中选择的用户为 True形式?

提前致谢。

最佳答案

当然。您真的需要表格范本吗?查看 Django 的基于类的 View ,它具有一些自动生成模型表单的内置函数。

from django.views.generic import CreateView

class PaymentCreateView(CreateView):
model = Payment
fields = '___all___'

def form_valid(self, form, **kwargs):
form.cleaned_data['users'].update(has_paid=True)
return super().form_valid(form, **kwargs)

当然,您可能需要稍微调整一下这段代码。

关于python - 在 View form_valid 函数中访问 ModelForm 中保存的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51853944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com