Django - ModelForm - 初始值

问题描述 投票:0回答:2

我正在使用Modelforms,并希望设置“feeder”字段的初始值。我得到以下类型错误:“基于10的int()的无效文字:'无'”可能是什么问题?

非常感谢大家

forms.朋友:

class CashFlowForm(forms.ModelForm):
 class Meta:
    model = models.CashFlow
    fields = ['type', 'amount', 'description','date']
    widgets = {'date': DatePicker()}

views.朋友:

def create_cashflow(request, fundslug):

 funddetail = Fund.objects.get(slug=fundslug)

 if request.method == 'POST':
    cf = CashFlowForm(request.POST)
    cf.feeder = funddetail.feeder
    if cf.is_valid():
        instance_cf = cf.save()
        messages.success(request, 'Cash Flow successfully added!')
        return redirect('funds:create_cashflow', fundslug = fundslug) 
 else:
    cf = CashFlowForm()

 return render(request, 'funds/create_cashflow.html', {'cf': cf})
django modelform
2个回答
0
投票

我fink funddetail.feeder返回无或你可以尝试

cf.cleaned_data['feeder'] = funddetail.feeder

0
投票

除非涉及到外键,否则模型无关紧要。对于类型错误,它主要与模型字段从表单中获取的值有关。

要在表单提交后分配值,请执行类似的操作

if request.method == 'POST':
    cf = CashFlowForm(request.POST)
    cf.save(commit=False)
    cf.feeder = funddetail.feeder
    cf.save()
© www.soinside.com 2019 - 2024. All rights reserved.