django mongoengine filter是一个可重用的django应用程序,灵感来自django filter,它允许mongoengine用户动态过滤queryset。

django-mongoengine-filter的Python项目详细描述


django mongoengine filter是一个可重用的django应用程序,允许用户 动态过滤mongoengine querysets。它非常类似于 流行的django过滤器 替换(尽可能多)与MongoEngine严格相关。

关于Read the docs的完整文档。

PyPI Version

要求

  • Python2.7、3.5、3.6、3.7
  • Django 1.11、2.0、2.1、2.2

安装

使用pip安装:

pip install django-mongoengine-filter

或最新开发版本:

pip install https://github.com/barseghyanartur/django-mongoengine-filter/archive/master.zip

用法

示例文档

frommongoengineimportfields,documentfrom.constantsimportPROFILE_TYPES,PROFILE_TYPE_FREE,GENDERS,GENDER_MALEclassPerson(document.Document):name=fields.StringField(required=True,max_length=255,default="Robot",verbose_name="Name")age=fields.IntField(required=True,verbose_name="Age")num_fingers=fields.IntField(required=False,verbose_name="Number of fingers")profile_type=fields.StringField(required=False,blank=False,null=False,choices=PROFILE_TYPES,default=PROFILE_TYPE_FREE,)gender=fields.StringField(required=False,blank=False,null=False,choices=GENDERS,default=GENDER_MALE)def__str__(self):returnself.name

示例筛选器

importdjango_mongoengine_filterclassPersonFilter(django_mongoengine_filter.FilterSet):profile_type=django_mongoengine_filter.StringFilter()ten_fingers=django_mongoengine_filter.MethodFilter(action="ten_fingers_filter")classMeta:model=Personfields=["profile_type","ten_fingers"]deften_fingers_filter(self,queryset,name,value):ifvalue=='yes':returnqueryset.filter(num_fingers=10)returnqueryset

示例视图

使用基于功能的视图:

defperson_list(request):filter=PersonFilter(request.GET,queryset=Person.objects)returnrender(request,"dfm_app/person_list.html",{"object_list":filter.qs})

或基于类的视图:

fromdjango_mongoengine_filter.viewsimportFilterViewclassPersonListView(FilterView):filterset_class=PersonFiltertemplate_name="dfm_app/person_list.html"

示例模板

<ul>
{% for obj in object_list %}
    <li>{{ obj.name }} - {{ obj.age }}</li>
{% endfor %}
</ul>

示例请求

  • 获取/个人/
  • 获得/个人/?个人资料类型=自由性别=男性
  • 获得/个人/?个人资料类型=自由性别=女性
  • 获得/个人/?个人资料类型=成员和性别=女性
  • 获得/个人/?十指=是

开发

测试

要在工作环境中运行测试,请键入:

./runtests.py

要使用所有受支持的Python版本进行测试,请键入:

tox

运行MongoDB

最简单的方法是通过Docker运行它:

docker pull mongo:latest
docker run -p 27017:27017 mongo:latest

编写文档

保持以下层次结构。

=====
title
=====

header
======

sub-header
----------

sub-sub-header
~~~~~~~~~~~~~~

sub-sub-sub-header
^^^^^^^^^^^^^^^^^^

sub-sub-sub-sub-header
++++++++++++++++++++++

sub-sub-sub-sub-sub-header
**************************

许可证

gpl 2.0/lgpl 2.1

支架

如有任何问题,请通过Author部分中提供的电子邮件与我联系。

作者

艺术酒吧<;artur.barseghyan@gmail.com>;

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java出现编译错误,我不理解   java在gnu-trove库中是否有任何有序映射?   java Servlet应该有映射,但找不到Servlet   java时间和第二期显示1:10,而不是13:10   java Play Framework 1.2.7 Heroku更新崩溃   线程“main”java中的opencsv异常。lang.NoClassDefFoundError:org/apache/commons/lang3/ObjectUtils   selenium在java中隐藏警告消息   java使用ID引用将JSON实体反序列化为POJO   java无法在JRE 8中加载字体   一个线程中的异常/错误会使整个应用程序停止吗?   java访问重复子规则的元素标签;e、 g.用ANTLR解析(1,2,3)中的a   java如何从平移旋转中找到新坐标   使用HTML Java小程序托管jar文件存在安全问题   java如何按频率而不是字母顺序排列字符串数组   java清除bufferedReader和块以获得更多输入   java解密SAML2断言