草庐IT

django-extensions

全部标签

python - 从 Django 模型类中解耦域类

因此,我已经完成了我正在构建的Web应用程序的OO分析和设计,现在正着手实现。已做出设计决策,以使用Python和Web开发框架Django来实现该系统。我想开始实现一些需要持久性的域实体类。似乎Django会让我将这些实现为从Django模型类继承的类,以便使用DjangoORM进行持久化。但是,这似乎是我的类实体和持久性机制之间的耦合太强了。如果在某个阶段我想放弃Django并使用另一个Web开发框架,或者只是放弃Django的ORM来替代,会发生什么情况?现在我必须从头开始重写我的域实体类。所以最好将我的域类实现为独立的Python类,将我所有的业务逻辑封装在这些类中,然后使用某

python - 在 Django 中一次更新所有模型

我正在尝试在Django(python)中按特定顺序一次更新所有对象的位置字段。我现在就是这样做的,但问题是它会产生大量查询。servers=frontend_models.Server.objects.all().order_by('-vote_count')i=1forserverinservers:server.last_rank=iserver.save()i+=1有没有办法更新Model.objects.all().order_by('some_field').update(position=some_number_that_changes_foreach_object)谢谢

python - django - 内联 - 搜索现有记录而不是添加新记录

我有一个带书架和书籍的图书馆。我以一对多的关系将每本书指向一个书架。如果一本书指向Null,则表示它在图书馆中,但尚未上架。#models.pyclassShelf(models.Model):passclassBook(models.Model):shelf=models.ForeignKey(Shelf,blank=True,null=True)然后:#admin.pyclassBookInLine(admin.TabularInLine):model=Bookextra=0classShelf(admin.ModelAdmin):inlines=[BookInLine,]当我编辑

python - 运行特定的 Django 测试(使用 django-nose?)

我有一个非常复杂的tests.py文件。实际上,测试类和方法是在运行时生成的w/type(考虑辅助文件中列出的数据)。我正在按照以下方式做事(更多代码见下文):klass=type(name,(TestCase,),attrs)setattr(current_module,name,klass)仅供引用,使用通常的django测试运行程序,所有这些测试都会在执行./manage.pytestmyapp时运行(感谢上面显示的setattr)。我想做的是只运行这些测试的一部分,而不是手动列出它们的名字。例如,我可以在类名或方法名中给每个测试“标签”,以便我可以对它们进行过滤。例如,我将执行

python - Django swagger-如何从删除、放置方法中禁用 DjangoFilterBackend 查询过滤器?

我创建了一个AssetsFilter类:fromdjango_filtersimportFilterfromdjango_filtersimportrest_frameworkasfiltersfromdjango_filters.fieldsimportLookupfrom.modelsimportAssetsclassMyListFilter(Filter):deffilter(self,qs,value):value_list=value.split(',')returnsuper(ListFilter,self).filter(qs,Lookup(value_list,'in'

python - django rest framework - 向后序列化以避免 prefetch_related

我有两个模型,Item和ItemGroup:classItemGroup(models.Model):group_name=models.CharField(max_length=50)#fields..classItem(models.Model):item_name=models.CharField(max_length=50)item_group=models.ForeignKey(ItemGroup,on_delete=models.CASCADE)#otherfields..我想编写一个序列化程序,它将获取所有项目组及其项目列表作为嵌套数组。所以我想要这个输出:[{group

python - 在 Django ORM 中旋转数据和复杂注释

Django中的ORM让我们可以轻松地根据相关数据注释(添加字段)查询集,但是我找不到为相关数据的不同过滤子集获取多个注释的方法。这是关于django-helpdesk的问题,一个开源的Django支持的故障单跟踪器。我需要像这样旋转数据以用于图表和报告目的考虑这些模型:CHOICE_LIST=(('open','Open'),('closed','Closed'),)classQueue(models.model):name=models.CharField(max_length=40)classIssue(models.Model):subject=models.CharField

python - 在 Django >=1.10 中初始化(未从数据库加载)后立即访问字段时,如何对自定义模型字段调用 to_python?

从Django1.9升级到1.10后,我发现django-geolocation包提供的字段的行为发生了变化。这是为破坏行为的1.10兼容性所做的更改:https://github.com/philippbosch/django-geoposition/commit/689ff1651a858d81b2d82ac02625aae8a125b9c9以前,如果您使用GeopositionField初始化模型,然后立即访问该字段,您会得到一个Geoposition对象。现在您只需取回您在初始化时提供的字符串值。如何使用Django1.10实现相同的行为?是否有像from_db_value这样

python - 打包一个django项目及其依赖为standalone "product"

我使用Django作为框架制作了一个小型“应用程序”。这是一个不需要部署到服务器而是在机器本地运行的应用程序。因此runserver.py工作得很好。作为开发人员,我很乐意启动终端、运行pythonmanage.pyrunserver并使用它。但我有一些MacOSX和Windowsfriend想要使用我的应用程序,他们没有virtualenv、git或其他任何东西。有没有办法将其打包为独立产品?当然,这取决于系统上安装的Python,但是可以将virtualenv与django和所有东西一起打包,然后将其复制到另一个系统并使其运行吗?甚至可能以某种守护模式运行运行服务器?

python - 在 Python 中处理项目脚本中的路径/可执行文件的最佳实践(例如 Django 的 manage.py 或 fabric)

我在一个相当标准化的目录结构中为不同的项目做了很多工作(我是一名科学家)。例如:project/analyses//lib/doc/results/bin我将所有各种实用程序脚本放在/bin/中,因为清洁仅次于虔诚。但是,我必须对路径进行硬编码(例如../../x/y/z),然后我必须在./bin/中运行,否则它们会中断。我用过Django,它有/manage.py,它运行各种django-things并自动处理路径。我还使用fabric来运行各种用户定义的函数。问题:我该如何做类似的事情?最好的方法是什么?我可以轻松地在/manage.py中写一些东西来将根目录注入(inject)s