访问视图窗体有效函数中保存在ModelForm中的数据

2024-04-20 02:39:48 发布

您现在位置:Python中文网/ 问答频道 /正文

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

在模型.py在

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

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

在表单.py在

^{pr2}$

现在,当我提交CreatePayment表单时,我可以为每个付款选择多个用户(反之亦然,因为多个用户可以在一次付款中获得付款,每个用户可以进行多次付款)。有没有方法可以在中编辑form_valid方法视图.py这样我就可以使has_paid字段只对在CreatePayment表单中选择的用户为真?在

提前谢谢。在


Tags: 方法用户py模型表单modelmodelspayment
1条回答
网友
1楼 · 发布于 2024-04-20 02:39:48

当然。你真的需要一个模型表格吗?看看Django的基于类的视图,它有一些内置函数来自动生成模型表单。在

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)

当然,您可能需要稍微调整一下这个片段。在

相关问题 更多 >