После запроса данные не извлекаются

Я пытаюсь получить определенные записи из таблицы базы данных на основе пользовательского ввода, но не получаю данных в objj. Может ли кто-нибудь указать ошибку. objects.all() также не получает данных.

views.py

from django.views.generic import TemplateView, ListView, DetailView
from ssr.models import dinucleotides
from ssr.forms import InputForm



# Create your views here.
def homepage(request):
    return render(request,'index.html')

def searchpage(request):
  if(request.method == 'POST'):
    fm=InputForm(request.POST)
    if fm.is_valid():
      print('form validated')
      Motiff = fm.cleaned_data['Motiff']
      
      obj1=dinucleotides.objects.filter( SSRtype=Motiff)
      objj={'obj1':obj1 }
    return render(request,'result.html', objj)

    
 
  else:
    fm=InputForm()
    return render(request,'search.html',{'form':fm})```



models.py

``` from django.db import models

# Create your models here.


class dinucleotides(models.Model):
    ID = models.IntegerField(db_column='ID', primary_key=True)  # Field name made lowercase.
    Chromosome = models.CharField(db_column='Chromosome', max_length=100, blank=True, null=True)  # Field name made lowercase.
    SSRtype = models.CharField(db_column='SSRtype', max_length=100, blank=True, null=True)  # Field name made lowercase.
    Sequence = models.CharField(db_column='SSRsequence', max_length=10000, blank=True, null=True)  # Field name made lowercase.
    Size = models.IntegerField(db_column='Size', blank=True, null=True)  # Field name made lowercase.
    Start = models.IntegerField(db_column='Start', blank=True, null=True)  # Field name made lowercase.
    End = models.IntegerField(db_column='End', blank=True, null=True)  # Field name made lowercase.

    def __str__(self):
        return self.dinucleotides```

Обратите внимание на то, как подключены модули:

from .forms import InputForm
from .models import dinucleotides

Также в модели я возвращаю только строку 'dinucleotides'. Везде, где есть префикс типа "bboard/result.html" замените "bboard" на имя вашего приложения. Я проверил, все работает. Попробуйте мой код и сравните с вашим. В шаблоне result.html словарь objj выводит на страницу поля отфильтрованных строк из базы данных.

urls.py

from django.urls import path
from .views import *

urlpatterns = [
    path('search/', searchpage),
]

forms.py

from django import forms

class InputForm(forms.Form):
    Motiff = forms.CharField()

models.py

from django.db import models

class dinucleotides(models.Model):
    ID = models.IntegerField(db_column='ID', primary_key=True)  # Field name made lowercase.
    Chromosome = models.CharField(db_column='Chromosome', max_length=100, blank=True, null=True)  # Field name made lowercase.
    SSRtype = models.CharField(db_column='SSRtype', max_length=100, blank=True, null=True)  # Field name made lowercase.
    Sequence = models.CharField(db_column='SSRsequence', max_length=10000, blank=True, null=True)  # Field name made lowercase.
    Size = models.IntegerField(db_column='Size', blank=True, null=True)  # Field name made lowercase.
    Start = models.IntegerField(db_column='Start', blank=True, null=True)  # Field name made lowercase.
    End = models.IntegerField(db_column='End', blank=True, null=True)  # Field name made lowercase.

    def __str__(self):
        return 'dinucleotides'

views.py

from django.shortcuts import render
from django.http import HttpResponse
from .forms import InputForm
from .models import dinucleotides


def searchpage(request):
    if request.method == "POST":
        fm = InputForm(request.POST)
        if fm.is_valid():
            Motiff = fm.cleaned_data["Motiff"]
            obj1 = dinucleotides.objects.filter(SSRtype=Motiff)
            objj = {'obj1': obj1}
            return render(request, "bboard/result.html", objj)
        else:
            return HttpResponse("Invalid data")
    else:
        fm = InputForm()
        return render(request, "bboard/search.html", {"form": fm})

search.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Form</title>
</head>
<body>
<form method="POST" novalidate>
    {% csrf_token %}
    <table>
        {{ form }}
    </table>
    <input type="submit" value="Send">
</form>
</body>
</html>
<
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
</head>
<body>
    {% for aaa in obj1 %}

   <h4>{{ aaa.ID}}</h4>
   <p>{{ aaa.Chromosome }}</p>
   <p>{{ aaa.SSRtype }}</p>
   <p>{{ aaa.Sequence }}</p>
   <p>{{ aaa.Size }}</p>
   <p>{{ aaa.Start }}</p>
   <p>{{ aaa.End }}</p>

   {% endfor %}
</body>
</html>
Вернуться на верх