ユーザーが10進値 'amount'を編集できるようにしようとしています。ユーザーが「編集」をクリックすると、小数フィールドが表示されます。ユーザーが入力でモデルを編集する。 ValueError
...値の変更が完了し、 "完了" をクリックした場合には、このエラーがスローされます。ここでは
Exception Type: ValueError
Exception Value: Cannot use None as a query value
は私のテンプレートです:
<form class="nice input-prepend edit-allocation-form" action="/portfolio/edit/" method="POST">
{% csrf_token %}
<input class="input-text required number" type="text" name="edit_amount{{ investment.position.id }}" {% if investment.position.amount %}value="{{ investment.position.amount }}"{% endif %}>
<a href="#" class="edit" id="edit{{ investment.position.id }}">edit</a>
<button class="hide" type="submit" id="saveAmountButton"></button>
</form>
そして、ここに私の見解です:
@login_required
def edit(request):
if request.method == 'POST':
profile = get_object_or_404(InvestorProfile, user=request.user)
position = InvestorPosition.objects.filter(id__in=request.POST.get('id'))
if Decimal(request.POST['edit_amount' + str(position.id)]) != position.amount:
position.amount = Decimal(request.POST['edit_amount' + str(position.id)])
position.save()
return HttpResponseRedirect(request.POST.get('next', '/portfolio/'))
私はこの仕事をすることはできません。 noobを助けてください?
'request.POST.get( 'id')'は何かを返します( 'None'ではありません)?私はあなたのフォームがどこかに 'id'フィールドを設定しているのを見ていませんか? – nijansen
これは正解であるため、答えとして投稿したはずです。彼はいくつかのJSを持っていない限り、彼はそのIDが投稿されることは決してないので、返すことは決してありません。 – John
私はこのコードを追加したいと思います。 の代わりに