Questions tagged «django»

Django是使用Python编写的开放源代码服务器端Web应用程序框架。它旨在减少创建复杂的数据驱动的网站和Web应用程序所需的工作量,并特别注重更少的代码,无冗余以及比隐式更显式。

1
分布式任务队列(例如Celery)与crontab脚本
我在理解“分布式任务队列”的目的时遇到了麻烦。例如,python的celery库。 我知道在celery(Python框架)中,您可以为要执行的功能设置定时窗口。但是,这也可以在针对python脚本的linux crontab中轻松完成。 据我所知,并通过我自己的django-celery网络应用显示,celery消耗的内存要比设置原始crontab多得多。对于相对较小的应用程序,相差几百MB。 有人可以帮我这个区别吗?总体上讲,关于任务队列/ crontabs如何工作的高级解释也许也不错。 谢谢。
92 python  django  celery 


2
仅更新模型中的特定字段。
我有一个模特 class Survey(models.Model): created_by = models.ForeignKey(User) question = models.CharField(max_length=150) active = models.NullBooleanField() def __unicode__(self): return self.question 现在我只想更新该active字段。所以我这样做: survey = get_object_or_404(Survey, created_by=request.user, pk=question_id) survey.active = True survey.save(["active"]) 现在我得到一个错误IntegrityError: PRIMARY KEY must be unique。 我可以用这种方法更新吗?

5
在Django QuerySet上计算vs len
在Django中,假设我QuerySet要遍历并打印结果,那么计算对象的最佳选择是什么?len(qs)还是qs.count()? (此外,考虑到在相同的迭代中对对象进行计数也是不可行的。)


3
如何找到两个Django查询集的并集?
我有一个带有两个自定义管理器方法的Django模型。每个对象都基于对象的不同属性返回模型对象的不同子集。 有没有什么方法可以获取一个查询集,或者仅仅是一个对象列表,那就是每个管理器方法返回的查询集的并集?

4
Django:通过查询计算列值的总和
我有一个模特 class ItemPrice( models.Model ): price = models.DecimalField ( max_digits = 8, decimal_places=2 ) .... 我试图这样做来计算此查询price集中的总和: items = ItemPrice.objects.all().annotate(Sum('price')) 这个查询有什么问题?还是有其他方法可以计算price列的总和? 我知道可以通过在queryset上使用for循环来完成此操作,但我需要一个优雅的解决方案。 谢谢!
92 python  django 

4
相当于Django的计数和分组依据
我有一个看起来像这样的模型: class Category(models.Model): name = models.CharField(max_length=60) class Item(models.Model): name = models.CharField(max_length=60) category = models.ForeignKey(Category) 我想要为每个类别选择项目的计数(只是计数),因此在SQL中,它将像这样简单: select category_id, count(id) from item group by category_id 有没有相当于做这种“ Django方式”?还是纯SQL是唯一的选择?我熟悉Django中的count()方法,但是我看不到group by如何适合那里。
91 python  django 


3
models.py越来越大,最好的分解方法是什么?
主管的指示:“我要避免在其中添加任何逻辑models.py。从现在开始,让我们将其用作访问数据库的类,并将所有逻辑保留在使用模型类或包装它们的外部类中。” 我觉得这是错误的方法。我觉得将逻辑保持在模型之外只是为了减小文件大小是一个坏主意。如果模型中的逻辑最好,则无论文件大小如何,逻辑都是真正应该去的地方。 那么,有没有一种简单的方法可以只使用include?用PHP讲,我想向主管建议,我们只是models.py从其他地方获得了include()模型类。从概念上讲,这将使模型具有我们想要的所有逻辑,但可以通过增加文件数量来减小文件大小(从而减少诸如冲突等的版本控制问题)。 因此,有没有一种简单的方法可以从models.py文件中删除模型类,但是仍然可以使模型与所有Django工具一起使用?或者,对于“大” models.py文件的一般问题,是否有完全不同但优雅的解决方案?任何输入将不胜感激。

4
Django模型字段默认基于同一模型中的另一个字段
我有一个模型,希望包含一个科目名称及其首字母(他的数据有些匿名,并且通过首字母进行跟踪)。 现在,我写道 class Subject(models.Model): name = models.CharField("Name", max_length=30) def subject_initials(self): return ''.join(map(lambda x: '' if len(x)==0 else x[0], self.name.split(' '))) # Next line is what I want to do (or something equivalent), but doesn't work with # NameError: name 'self' is not defined subject_init = models.CharField("Subject Initials", max_length=5, default=self.subject_initials) 如最后一行所示,我希望能够将姓名的缩写实际作为字段(与名称无关)存储在数据库中,但是会使用基于名称字段的默认值进行初始化。但是,由于Django模型似乎没有“自我”,我遇到了问题。 …

5
取消Celery已经执行的任务?
我一直在阅读文档并进行搜索,但似乎找不到直接的答案: 您可以取消已经执行的任务吗?(由于任务已开始,需要一段时间,因此需要取消一半) 我在Celery FAQ的文档中找到了这个 >>> result = add.apply_async(args=[2, 2], countdown=120) >>> result.revoke() 但是我不清楚这是否会取消排队的任务,或者是否会杀死工作程序上正在运行的进程。感谢您能摆脱的光芒!

8
Django删除FileField
Наэтотвопросестьответына堆栈溢出русском:КакудалитьфайлнадискеизполяFileField / ImageFieldприудалениоб 我在Django中建立网路应用程式。我有一个上传文件的模型,但无法删除它。这是我的代码: class Song(models.Model): name = models.CharField(blank=True, max_length=100) author = models.ForeignKey(User, to_field='id', related_name="id_user2") song = models.FileField(upload_to='/songs/') image = models.ImageField(upload_to='/pictures/', blank=True) date_upload = models.DateField(auto_now_add=True) def delete(self, *args, **kwargs): # You have to prepare what you need before delete the model storage, path = self.song.storage, self.song.path # Delete the model …

1
Python NameError:名称“ include”未定义
关闭。这个问题需要调试细节。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 4年前关闭。 改善这个问题 我目前正在使用Django框架(非常新手)开发一个网站,但是我对Python遇到了问题:由于创建了模板,因此由于该原因我无法再运行服务器(堆栈跟踪指向文件urls.py中的一行): <stacktrace> ... path('apppath/', include('myapp.urls')), NameError: name 'include' is not defined 我可以include从哪里进口?

3
如何在Django中执行SELECT MAX?
我有一个对象列表,如何运行查询以给出字段的最大值: 我正在使用此代码: def get_best_argument(self): try: arg = self.argument_set.order_by('-rating')[0].details except IndexError: return 'no posts' return arg 评分是整数

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.