gpt4 book ai didi

python - Django Python 中的搜索字段

转载 作者:行者123 更新时间:2023-11-28 17:30:38 25 4
gpt4 key购买 nike

首先,我必须说这是我在 Django 中的第一个应用程序。所以我的知识还很有限。

我有这个主页,它显示了我模型中的所有数据。模型名称是“ Assets ”。

我正在尝试在主页中添加一个搜索字段。

模型.py

class Asset(models.Model):
asset_desc = models.CharField(max_length=120, null=False)
BEIRUT = 'Beirut'
SAIDA = 'Saida'
HALBA = "Halba"
base_choice = ((SAIDA, "Saida"), (BEIRUT, "Beirut"), (HALBA, "Halba"))
asset_base = models.CharField(max_length=120, null=False, choices=base_choice)
created_date = models.DateField(auto_now_add=True)
update_date = models.DateTimeField(auto_now=True)
asset_user = models.CharField(max_length=120, blank=True)
slug = models.SlugField()

def save(self, *args, **kwargs):
self.slug = slugify(self.asset_desc)
super(Asset, self).save(*args, **kwargs)

def __str__(self):
return self.asset_desc

View .py

def search_asset(request):
if 'q' in request.GET and request.GET['q']:
q = request.GET['q']
assets = Asset.objects.filter(asset_desc__icontains=q)
context = {'desc': assets}
return render(request, 'home.html', context)

搜索字段的 html:

    <form method="GET" class="navbar-form navbar-right">
<input type="text" class="form-control" placeholder="Search..."id="search_box" name="q">

网址.py

url(r'^search/$', "asset.views.search_asset", name="home")

请帮助解释为什么它没有显示结果。我正在使用 Django 1.9。

最佳答案

一些更正:

TextField() 和 CharField() 不需要 null=False,因为它们从不将 Null 保存到数据库,而是保存空字符串。所以你可以删除 null=False

搜索 url 名称是 home,这在逻辑上不太合适。应该改成search或者search_view然后就可以通过url标签来引用了:

action="{% url 'search' %}"

如果有人查看您的代码,这将很有用。 “可读性很重要”;)

最后,把它放到你的 home.html 中(实际上你必须已经有了它)

{% for asset in desc %}
<div>
{{ asset.asset_desc }} <br>
{{ asset.base_choice }} <br>
{{ asset.asset_user }}
</div>
{% endfor %}

希望对你有帮助

关于python - Django Python 中的搜索字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34561264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com