Django排序字段

django-sorting-field的Python项目详细描述


https://travis-ci.org/andersinno/django-sorting-field.svg?branch=masterhttps://codecov.io/gh/andersinno/django-sorting-field/branch/master/graph/badge.svg
  • 这个包实现了一个django form field+小部件,用于对项目进行拖放排序
  • 支持使用名为id的字段对任何项进行排序
  • 拖放功能已经用html5sortable实现。

已知限制

  • 刷新小部件上的项目还没有?支持开箱即用
  • 无测试

小部件示例

readme-media/example.gif

用法

排序顺序字段应该在包含排序对象的模型上实现。 这允许对同一项集的不同实例进行不同的排序。

假设您有图像旋转木马、旋转木马和图片模型,并且您希望能够 在每个carouselplugin上对同一个carousel实例进行不同的排序。

您还有一个用于carousel的cmsplugin对象。

classCarousel(models.Model):passclassPicture(models.Model):carousel=models.ForeignKey(Carousel,related_name="pictures")image=SomeImageField()name=models.CharField()classCarouselPlugin(CMSPlugin):carousel=models.ForeignKey(Carousel,related_name="x")classCMSCarouselPlugin(CMSPluginBase):model=CarouselPlugindefrender(self,context,instance,placeholder):context.update({"pictures":self.instance.carousel.pictures.all(),})returncontext

通过以下步骤可以实现所需的行为:

向包含订单信息的模型添加一个(可为空)文本字段

classCarouselPlugin(CMSPlugin):carousel=models.ForeignKey(Carousel,related_name="x")carousel_order=models.TextField(null=True)

将sortingformfield添加到cms插件并填充它

fromdjango_sorting_field.fieldsimportSortingFormFieldclassCarouselPluginForm(forms.ModelForm):carousel_order=SortingFormField()def__init__(self,*args,**kwargs):super(CarouselPluginForm,self).__init__(*args,**kwargs)ifself.instance.pk:self.fields["carousel_order"].populate(items=self.instance.carousel.pictures.all(),)classCMSCarouselPlugin(CMSPluginBase):model=CarouselPluginform=CarouselPluginFormdefrender(self,context,instance,placeholder):context.update({"pictures":self.instance.carousel.pictures.all(),})returncontext

最后,对传递给上下文数据的项进行排序

fromdjango_sorting_field.utilsimportsort_by_orderclassCMSCarouselPlugin(CMSPluginBase):model=CarouselPluginform=CarouselPluginFormdefrender(self,context,instance,placeholder):context.update({"pictures":sort_by_order(self.instance.carousel.pictures.all(),self.instance.carousel_order),})returncontext

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

推荐PyPI第三方库


热门话题
java为什么我的代码永远运行?它只是一堆带int的for循环,应该是递减的?   java如何更改IntelliJ IDEA中的XML缩进?   java如何使未填充的int数组不打印0?   eclipse My Weka Java代码结果*Weka*虚拟*STRING*用于*STRING*属性*   java泄漏了Windows com。安卓内部的政策恳求   java这个无限循环的原因是什么?   swing My标签在Java中很模糊   java如何在组件表示存储扩展中获取组件对象   java如何避免selenium网格中的会话超时   Java乘法测验,如果答案错误,如何循环   在Java HttpServlet Google app engine中保存对象   java ArrayList过滤器   java跳跃减慢了xvelocity:使用Libgdx/Box2D进行跳跃和跑步   java删除、复制和修改pom。xml文件   当提供的时区与服务器的时区相同时,RestCall中的java@DateTimeFormat(iso=iso.DATE_TIME)不工作   java Spring批处理多线程默认限制为10隐式?   安卓错误java。lang.UnsupportedOperationException:无法转换为维度:type=0x1