Как связать выбор моей формы Django с отфильтрованными значениями базы данных

Я настраиваю веб-страницу с помощью Django, в которой я хотел бы, чтобы выпадающие опции моей формы фильтровали опции базы данных на основе выбора. Есть четыре варианта: allElements, oldElements, newElements и testElements. Моя проблема в том, что, хотя я могу создать цикл for для итерации базы данных на основе любой из четырех переменных, которые я определил, выбор моей формы не связан с вариантами выбора, как я думал.

Моя форма:

account_choices=[('allElements','All Elements'), ('oldElements','Old Elements'), ('newElements','New Elements'), ('testElements','Test Elements')]

class SelectIdForm(forms.Form):
    Filter = forms.ChoiceField(choices = account_choices, error_messages={'required': ''})

Мое мнение:

def metalist(request):
    form=SelectIdForm(request.POST)
    if account_choices == 'allElements':
        data = Metadata.objects.all().order_by('title')
    elif account_choices == 'oldElements':
        data = Metadata.objects.all().filter(metaMain = '1').order_by('title')
    elif account_choices == 'newElements':
        data = Metadata.objects.all().filter(metaMain = '2').order_by('title')
    elif account_choices == 'testElements':
        data = Metadata.objects.all().filter(metaMain = '3').order_by('title')
    else:
        data = Metadata.objects.all().order_by('title')
    
    return render(request, "Site/insights/metalist.html",
    {"allElements": Metadata.objects.all().order_by('title'),
    "oldElements": Metadata.objects.all().filter(metaMain = '1').order_by('title'),
    "newElements": Metadata.objects.all().filter(metaMain = '2').order_by('title'),
    "testElements": Metadata.objects.all().filter(metaMain = '3').order_by('title'), 
    "form": form, 'data': data
    })

Моя HTML страница:

 <form method="POST">
    {% csrf_token %}
     {{form}} 
      <input type="submit" value="Click to Filter">
  </form>

  {% for list in data %}
     <li> Metadata List: <a href="{% url 'Site:insights/metalist' account.title %}"> {{ metadata.title }}</a>
          </li>
        {% endfor %}

Я сократил код для удобства чтения, но проблема в том, что хотя я могу подставить один из четырех вариантов в цикл for непосредственно в коде (например, {% for list in newElements %} и увидеть желаемый вывод для этого варианта на веб-странице, я хочу, чтобы вывод был привязан к выбору формы, чтобы я мог выбрать "Новые элементы" в выпадающей форме на веб-странице и увидеть вывод, соответствующий только этому выбору. Я бы хотел, чтобы это было так для всех четырех вариантов - выбор любого из них должен привести к выводу на веб-страницу соответствующих метаданных только для этого выбора. Может ли кто-нибудь помочь? (Моя выпадающая форма и вывод находятся на одной веб-странице, поэтому в коде формы нет "действия" для отправки на другую страницу)

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