Python 在django中用get方法搜索数据库表
我是django新手,很难通过“get”方法从模型数据库表中获取结果 我的型号是:Python 在django中用get方法搜索数据库表,python,django,django-models,django-views,Python,Django,Django Models,Django Views,我是django新手,很难通过“get”方法从模型数据库表中获取结果 我的型号是: class records(models.Model): sex = (('M', 'MALE'),('F', 'FEMALE'),) reg_number = models.CharField(max_length=15) mic_number = models.CharField(max_length=15) dog_name = models.CharField(max_le
class records(models.Model):
sex = (('M', 'MALE'),('F', 'FEMALE'),)
reg_number = models.CharField(max_length=15)
mic_number = models.CharField(max_length=15)
dog_name = models.CharField(max_length=20)
dog_breed = models.CharField(max_length=50)
color = models.CharField(max_length=20)
dog_Sex = models.CharField(max_length=1,choices=sex)
Breeder = models.CharField(max_length=30)
Owner_name = models.CharField(max_length=50)
address = models.TextField(max_length=264)
from django.shortcuts import render
import datetime
from .forms import RecordForm
from .models import records
# Create your views here.
def index (request):
return render(request, "newyear/index.html")
def search (request):
mic = request.GET['mic']
r = records.objects.filter(mic_number__iexact = mic )
return render(request,"newyear/search.html", {"records": r})
我的视图是:
class records(models.Model):
sex = (('M', 'MALE'),('F', 'FEMALE'),)
reg_number = models.CharField(max_length=15)
mic_number = models.CharField(max_length=15)
dog_name = models.CharField(max_length=20)
dog_breed = models.CharField(max_length=50)
color = models.CharField(max_length=20)
dog_Sex = models.CharField(max_length=1,choices=sex)
Breeder = models.CharField(max_length=30)
Owner_name = models.CharField(max_length=50)
address = models.TextField(max_length=264)
from django.shortcuts import render
import datetime
from .forms import RecordForm
from .models import records
# Create your views here.
def index (request):
return render(request, "newyear/index.html")
def search (request):
mic = request.GET['mic']
r = records.objects.filter(mic_number__iexact = mic )
return render(request,"newyear/search.html", {"records": r})
我的索引模板是:
<form action="{% url 'search'%}" enctype="application/x-www-form-urlencoded" method="GET">
<ul><input type="text" name = "mic"></ul>
<button type="submit" name= "search">search</button>
</form>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>THIS IS RESULT PAGE</h1>
{% if records %}
<table>
{% for records in records %}
<tr>
<td>{{records.color}}</td>
<td>{{records.dog_name}}</td>
<td>{{records.mic_number}}</td>
</tr>
{% endfor %}
</table>
{% endif %}
</body>
</html>
搜索
我的搜索模板是:
<form action="{% url 'search'%}" enctype="application/x-www-form-urlencoded" method="GET">
<ul><input type="text" name = "mic"></ul>
<button type="submit" name= "search">search</button>
</form>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>THIS IS RESULT PAGE</h1>
{% if records %}
<table>
{% for records in records %}
<tr>
<td>{{records.color}}</td>
<td>{{records.dog_name}}</td>
<td>{{records.mic_number}}</td>
</tr>
{% endfor %}
</table>
{% endif %}
</body>
</html>
文件
这是结果页面
{%if记录%}
{记录%中的记录为%s}
{{records.color}
{{records.dog_name}
{{records.mic_number}
{%endfor%}
{%endif%}
search.html
仅显示“这是结果页”。以上方法有什么错误,请帮助。我已经挣扎了3天。循环变量(记录
)与循环详细信息(记录
)相同。因此,请将记录
更改为记录
,如下所示。并将GET
方法更改为POST
<h1>THIS IS RESULT PAGE</h1>
{% if records %}
<table>
{% for record in records %}
<tr>
<td>{{record.color}}</td>
<td>{{record.dog_name}}</td>
<td>{{record.mic_number}}</td>
</tr>
{% endfor %}
</table>
{% endif %}
index.html
<form action="{% url 'search'%}" enctype="application/x-www-form-urlencoded" method="POST">
<ul><input type="text" name = "mic"></ul>
<input type="submit" value="search" name= "search">
</form>
Search.html仅显示“这是结果页”。以上方法有什么错误,请帮助。3天来我一直在努力。我试过了,但仍然没有显示任何记录。页面保持空白。检查记录这是空的??通过将{{records}}
添加到template.no,当我删除所有内容并发送查询记录.objects.all()时,记录不是空的。如果我手动输入mic_编号并删除mic,它也会显示结果。问题是它没有从表单中获取参数。mic\u number
数据库值中必须手动输入(index
url),然后显示详细信息。我认为这个错误是你的错误。我用正确的答案在本地运行它。是的,它起作用了,非常感谢。我松了一口气。