0

フォームを送信しようとしていis_validますが、ビューのように通過しません。

フォームは、あまり経験のない forms.Modelforms を使用しています。

テンプレートをチェックイン{{ form.errors }}しましたが、何も返されませんでした。

時間と専門知識に感謝します

class AddSubcategory(forms.ModelForm):
    class Meta:
        model = Subcategory
        fields = ['category']

    subcategory_name = forms.CharField(max_length=255)

意見

@login_required
@locationed
def add_subcategory(request, location):

    subcat_form = AddSubcategory(request.POST)

    if subcat_form.is_valid():

        submitted_subcat_name = subcat_form.cleaned_data['subcategory_name']

        selected_cat = subcat_form.cleaned_data['category']

            _, was_created = Subcategory.objects.get_or_create(name=submitted_subcat_name, category=selected_cat)


        return HttpResponseRedirect(reverse('manage_cat_subcat', args=(location.slug,)))
    else:
        cat_form = AddCategory()
        subcat_form = AddSubcategory()
        return render(request, 'inventory/manage_cat_subcat.html', {'location': location,'cat_form': cat_form,'subcat_form':subcat_form})

テンプレート (フォーム)

<form class="form-inline" action="{% url 'add_subcategory' location.slug %}" method="post">

     {% csrf_token %}

            {{subcat_form.category}}

            {{subcat_form.subcategory_name}}

            <button class="btn btn-small" type="submit">Add Subcategory</button>    
        </form>
4

1 に答える 1

2

必要なフィールドを指定しますがid, category and name、テンプレートのフォームには入れません。

しかありませんcategory and subcategory_name

これら 2 つの要素をテンプレートに追加するか、フィールド リストから削除することができます。

また、フォームのアクションを指定しないでください。フォームからのデータが送信されるビューを指定する必要があります。

于 2013-09-10T23:20:06.113 に答える