Кнопка отправки формы Django ModelForm не работает

Я пытаюсь сделать Django ModelForm, которая получает данные из моей базы данных, используя метод GET. Когда я нажимаю на кнопку submit, ничего не происходит. Что я делаю не так?

HTML doc

<form role="form" action="" method="GET" id="form-map" class="form-map form-search">
     <h2>Search Properties</h2>
     {% csrf_token %}
     {{ form.as_p }}
          <input type="submit" action= "" class="btn btn-default" value="Submit">
          <input type="reset" class="btn btn-default" value="Reset">
</form><!-- /#form-map -->

forms.py

from django import forms
from .models import StLouisCitySale208
from django.forms import ModelForm, ModelMultipleChoiceField


class StLouisCitySale208Form(ModelForm):
    required_css_class = 'form-group'
    landuse = forms.ModelMultipleChoiceField(label='Land use', widget=forms.SelectMultiple, queryset=StLouisCitySale208.objects.values_list('landuse', flat=True).distinct())
    neighborho =forms.ModelMultipleChoiceField(label='Neighborhood',widget=forms.SelectMultiple, queryset=StLouisCitySale208.objects.values_list('neighborho', flat=True).distinct())
    policedist = forms.ModelMultipleChoiceField(label='Police district',widget=forms.SelectMultiple,queryset=StLouisCitySale208.objects.values_list('policedist', flat=True).distinct())
    class Meta:
        model = StLouisCitySale208
        fields = ['landuse', 'neighborho', 'policedist', 'precinct20','vacantland', 'ward20', 'zip', 'zoning','asmtimprov', 'asmtland', 'asmttotal', 'frontage', 'landarea','numbldgs', 'numunits']

views.py

from django.views.generic import FormView, TemplateView
from .forms import StLouisCitySale208Form

class StLouisCitySale208View(FormView):
    form_class = StLouisCitySale208Form
    template_name = 'maps/StlouiscitySale208.html'

maps/urls.py

from django.urls import path
from .views import StLouisCitySale208View, ComingSoonView

app_name = 'maps'

urlpatterns = [
    path("maps/stlouiscitysale208",StLouisCitySale208View.as_view(),name="stlouiscitysale208"),
    path('maps/coming_soon', ComingSoonView.as_view(), name="coming_soon")
]

Ваша форма в настоящее время имеет method="GET", который используется для поиска или другой операции, которая не изменяет состояние приложения.

Похоже, что вы надеетесь создавать объекты с помощью формы модели, поэтому измените это на method="POST" и вы, по крайней мере, позволите приложению создать ваш объект. На этом этапе может быть больше возможностей для отладки, но вам нужно начать с отправки данных на сервер.

Вам нужен метод get в вашем классе, чтобы сообщить кнопке, что делать.

class MyView(View):
    def get(self, request):
     # <view logic>
    return HttpResponse('result')

https://docs.djangoproject.com/en/4.0/topics/class-based-views/intro/

Вернуться на верх