私は次の形式を持っている:Djangoのフォームは無効ですが、エラーメッセージなし
class SkuForm(forms.Form):
base_item = forms.ModelChoiceField(queryset=BaseItem.objects.none())
color_or_print = forms.ModelMultipleChoiceField(queryset=Color.objects.none())
material = forms.ModelMultipleChoiceField(queryset=Material.objects.none())
size_group = forms.ModelMultipleChoiceField(queryset=Size_Group.objects.none())
私の見解:
def sku_builder(request):
if request.method == "POST":
user = request.user
form = SkuForm(request.POST)
if form.is_valid():
base_item = form.cleaned_data['base_item']
colors = filter(lambda t: t[0] in form.cleaned_data['color_or_print'], form.fields['color_or_print'].choices)
materials = filter(lambda t: t[0] in form.cleaned_data['material'], form.fields['material'].choices)
size_groups = filter(lambda t: t[0] in form.cleaned_data['size_group'], form.fields['size_group'].choices)
return render(request, 'no_entiendo.html', {'colors': colors, })
else:
return HttpResponse("form is not valid")
user = request.user
form = SkuForm()
form.fields['base_item'].queryset = BaseItem.objects.filter(designer=user)
form.fields['color_or_print'].queryset = Color.objects.filter(designer=user)
form.fields['material'].queryset = Material.objects.filter(designer=user)
form.fields['size_group'].queryset = Size_Group.objects.filter(designer=user)
return render(request, 'Disenador/sku_builder.html', {'form': form,})
問題はImは受信のみということである「フォームを有効なメッセージではありません」フォームが選択肢のみで構成されているので、なぜそれが有効でないのかわからないので、タイプミスはありません。また、私はデバッグするシステムからのフィードバックを持っていないか、またはどこを検索するか分からない。
は* form.is_validは完全なコードではありませんした後に何が起こるか
UPDATE: 私は{{form.errorsを}}に置かれ、このなった: color_or_print
Select a valid choice. 6 is not one of the available choices.
base_item
をSelect a valid choice. That choice is not one of the available choices.
サイズ_グループ
Select a valid choice. 2 is not one of the available choices.
size_groupとcolor_or_printでは、番号はpkです(ただし、1つのアイテムしか表示されず、2つが選択されています)。base_itemで何が起きているのかわかりません。
get_object_or_404 ?
と私はbase_itemで何ができますか?フォームが無効である場合は、ここに posted from the debug_toolbar
フォームが無効な場合はHttpReponseを送信するのではなく、フォームとエラーでhtmlを表示します。 – anupsabraham
ありがとう、私はまだ、明確な行動の経路はありませんでした。 –
あなたは 'SkuForm'のinitメソッド – anupsabraham