我有一些带有一些行的models.py文件,我想在我的HTML模板上返回与我的过滤器QuerySet对应的所有行。
class Parser:
def __init__(self, path):
self.lexer = TemporalLogicLexer(FileStream(path))
self.stream = CommonTokenStream(self.lexer)
self.parser = TemporalLogicParser(self.stream)
def parse(self):
# What should I do here? This method should return the parsed Clause object
我的html模板如下:
#models.py
def Test(request) :
CarCollection = MyModel.objects.filter(car="old")
context = {
"CarCollection" : CarCollection
}
return render(request, 'car.html', context)
但是我的对象看起来像:
<!-- car.html -->
{% block content %}
<ul>
{% for car in CarCollection %}
<li>{{ car }}</li>
{% endfor %}
</ul>
{% endblock %}
所以我想在我的对象中隔离一个字符串(例如Volvo_old_car
Audi_old_car
Nissan_new_car
old_Bentley
)并返回带有该字符串的所有对象。但是这个字符串可以在开头,中间或结尾。
过滤器将返回:
old
我需要使用Regex来做到这一点吗?
先谢谢你
答案 0 :(得分:1)
而不是
MyModel.objects.filter(car="old")
DO
MyModel.objects.filter(car__icontains="old")
这将告诉Django过滤掉MyModel
字段包含car
的所有old
个对象。
P.S。你一定要检查PEP8 Python约定。这将帮助您编写易于为Python开发人员阅读的代码。
答案 1 :(得分:0)
您可以使用: 在查询中以endswith或istartswith结束。
CarCollection = MyModel.objects.filter(car__istartswith="old")
答案 2 :(得分:0)