初学django3-获取URL参数对数据库进行动态查询

本文详细阐述了如何在人员展示页面中实现动态数据筛选功能,通过URL参数动态调用不同字段进行分类查询,简化了后台管理流程。利用Python代码实现实时响应用户需求,优化了用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

搞了一晚上终于搞定了。

想法是:

在人员展示页面中有一个像后台页面list_fiter功能,方便用户对人员分类信息进行筛选,后来看了admin中filter.py的代码,发现不会。决定自己研究一下如何对数据进行筛选。

Model中有年龄、姓名、部门等字段(这里偷懒不贴出来了),用户通过点击超链接可以决定对哪些数据进行筛选

例如要筛选部门,则点击

/HRSystem/personlist/departmen=deparment.name/

要筛选性别,则点击

/HRSystem/personlist/sex=male/

现在可以看到超链接中字段名和字段值都在不停的变化。如果使用Q语句应该可以完成,但是既然使用了模板,就不想写sql语句。贴出代码如下:

ulrs.py:	 
url(r'^personlist/(?P<filed_name>[\w]+)=(?P<filed_value>[\w]+)/$',
	 decorators.login_required(PersonListView.as_view(),login_url='HRSystem:login')
	 ,name='personlist'),

views.py
	def get_queryset(self,*args,**kwargs):

		kw = {
		 	self.kwargs['filed_name'] : self.kwargs['filed_value']
		 }

		person_list = Person.objects.filter(**kw)
		return person_list
通过自定义kw字典后,将kw传递到Person.objects.filter()就实现了动态查询及分类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值