我在导航栏中创建了一个搜索字段,目前搜索按标题,用户名,first_name,last_name查找帖子。使用“标题”搜索可能有100个结果,依此类推。
我目前在导航栏中搜索我要保留的内容
<form class="navbar-form navbar-left" action="{% url 'posts:all' %}">
<div class="form-group">
<input type="text" class="form-control" placeholder="Search" name="q">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
我现在想要创建一个精致的搜索页面(一个新的页面)。在该页面中将有4个单独的搜索字段, 例如:
按标题搜索帖子:__搜索框_____
按用户名搜索帖子__搜索框____
按first_name __ Search box____搜索帖子
按last_name搜索帖子__搜索框_____
这是视图查找所有字段的组合方式。
class Postlist(SelectRelatedMixin, ListView):
model = Post
select_related = ('user', 'group')
def get_queryset(self):
queryset = super(Postlist, self).get_queryset()
query = self.request.GET.get('q')
if query:
queryset = queryset.filter(
Q(title__icontains=query)|
Q(user__username__iexact=query)|
Q(user__first_name__iexact=query)|
Q(user__last_name__iexact=query)
)
return queryset
如果问题太基础我很抱歉我是django的初学者。我该怎么做呢是否会有4个不同名称的表格。示例而不是name =“q”,我是否可以使用表单名称=“a”,表单名称=“b”,表单名称=“c”等。此外,视图将如何显示
答案 0 :(得分:1)
您可以在一个表单中包含4个搜索字段,在视图功能中,您可以检查每个字段的值并进行相应的查询。
您可以print(request.GET)
查看所有字段名称,然后访问每个字段,如:
request.GET['field1']
答案 1 :(得分:1)
您所谈论的新页面可能包含一个包含4个HTML输入字段的HTML表单,每个字段都有自己的name
属性(例如:field_1
,field_2
,{{1 }和field_3
)。
您的观点可能如下所示:
field_4