版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_27695659/article/details/87932798
1、首先在项目文件夹中stark.py中:
class BookConfig(ModelStark):
list_display = ["title","price",]
list_display_links = ["title"]
search_fields = ["title", "price"]
modelform_class = BookModelForm
starkSite.register(Book, BookConfig)
2、在stark组件下service包中的stark.py的ModelStark类添加
search_fields = []
def get_serach_conditon(self, request):
key_word = request.GET.get("q", "")
self.key_word = key_word
from django.db.models import Q
search_connection = Q()
if key_word:
# self.search_fields # ["title","price"]
search_connection.connector = "or"
for search_field in self.search_fields:
search_connection.children.append((search_field + "__contains", key_word))
return search_connection
def list_view(self,request):
# 获取serach的Q对象
search_connection = self.get_serach_conditon(request)
return render(request, "list_view.html", locals())
3、list_view.html
{% if showlist.config.search_fields %}
<form action="" class="pull-right">
<input type="text" name="q" value="{{ showlist.config.key_word }}"><button>submit</button>
</form>
{% endif %}