如何解决如何将django-admin-search与search_FieldNameHere一起使用?我无法使用相同的
django-admin-search插件版本0.3.5已在Linux上与django 3.0.5一起安装。我不明白如何精确使用search_field查询。我现在还不是和OOPS一起工作。 我尝试过的:
def search_mfrom(request,field_value,param_values):
"""
intercept query filter for description field
"""
query = Q()
#print(request,param_values,'llllllllllllll')
query = Q(mfrom='sowmiya@abc.com')
print(query,'qqqqqqqqqqqq')
return query
打印(查询,'qqqqqqqqqqqq')从不执行。我传错了吗?表单字段是来自。
第二,希望在此工具覆盖的查询集中发送登录特定记录。该怎么做?我可以基于request.user的登录域部分覆盖查询集,但是由于此工具也覆盖了modeladmin的queryset对象,因此我不知道该怎么做。相同的代码段:
def get_queryset(self,request):
domain_list = []
temp = []
qs = super(LogSearchFormAdmin,self).get_queryset(request)
if request.user.is_superuser:
return qs
else:
domain_list = Domain.objects.filter(
customer__in=Customer.objects.filter(
email=request.user.username)).values_list(
'name',flat=True)
#print(list(domain_list))
dom_names = list(domain_list)
#print(dom_names)
qs = MailLogs.objects.none()
if dom_names:
for d in dom_names:
qs = MailLogs.objects.filter(
Q(mfrom__icontains=d)|Q(mto__icontains=d))
# qs |= MailLogs.objects.filter(mfrom__icontains=d)
# qs |= MailLogs.objects.filter(mto__icontains=d)
print(qs.query)
#print(qs)
return qs
解决方法
我认为在这种情况下文档中有一个错误,我会尽快对其进行更新。
这周我不在开发笔记本电脑附近,因为这种原因,我尝试在不测试代码的情况下为您提供帮助,对此感到抱歉。
另一个细节是:我为Django 2创建了这个库,在这种大流行中,发生了很多事情,国际变更,签证细节,寻找住所,新工作等等,这是疯狂的日子。而且我不确定是否可以在Django 3上使用。在下个月,我将检查这一点(我相信我会解决所有问题)
但是,如果可行,您需要做的只是
-
安装一个库(请查看GitHub页面)
-
创建搜索表单
from django.forms import Form
from django.forms import CharField
class YourFormSearch(Form):
mfrom = CharField() ## this type is just for registry will be ignored because your override this
- 覆盖管理员
class YourAdmin(AdvancedSearchAdmin):
def search_mfrom(self,field,field_value,form_field,request,param_values):
"""
intercept mfrom filter and override
"""
query = Q()
# your Q logic here
return query
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。