【发布时间】:2019-08-11 16:10:17
【问题描述】:
我正在使用 Modelforms,并希望设置“feeder”字段的初始值。我收到以下类型错误:“invalid literal for int() with base 10: 'None'” 可能是什么问题?
谢谢大家
forms.py:
class CashFlowForm(forms.ModelForm):
class Meta:
model = models.CashFlow
fields = ['type', 'amount', 'description','date']
widgets = {'date': DatePicker()}
views.py:
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})
【问题讨论】:
-
哪一行抛出异常?
-
我相信你会得到
None的amount字段 -
另外,当您说
feeder字段的初始值时,您是指显示表单时的初始值还是保存表单之前设置的值?如果是前者,则不会为表单显示feeder字段,因为它不在fieldsinside ModelForm Meta 中。如果是后者,那么您可能想要这样做:cf.save(commit=False)before -
嗨,开发者。确实是后者。我正在尝试一些事情,但问题是基金细节与基金有关,而不是与现金流模型有关
-
发布您的
CashFlow模型类以获得更清晰的信息