从阅读PEP-8,我知道你应该把右括号放在函数调用的最后一个参数的同一行: ShortName.objects.distinct().filter( product__photo__stockitem__isnull=False) 或许,长时间的表情最好是完全避免。 但是,如果这是不可取的, 你将如何去多个链式方法调用? 是否应该closures一个新的线? ShortName.objects.distinct().filter( product__photo__stockitem__isnull=False ).values_list('value', flat=True) 那么没有参数的方法呢? 如何在不用引用中间返回值的情况下将它们写入多行? ShortName.objects.distinct( ).filter().values() # looks ugly 更新 :有一个重复的问题, 如何打破Python中的链式方法的一行? 。 接受的答案表明从jQuery风格开始,每个新行都带有一个点。 作者没有提供任何理由或权威的参考,所以我想获得这种风格或其他select的确认。
我正在寻找这样做: class Place(models.Model): name = models.CharField(max_length=20) rating = models.DecimalField() class LongNamedRestaurant(Place): # Subclassing `Place`. name = models.CharField(max_length=255) # Notice, I'm overriding `Place.name` to give it a longer length. food_type = models.CharField(max_length=25) 这是我想要使用的版本(虽然我打开任何build议): http : //docs.djangoproject.com/en/dev/topics/db/models/#id7 Django支持这个吗? 如果没有,是否有办法达到类似的结果?
即使模型中某个字段被标记为'editable=False' ,我也希望pipe理页面显示该字段。 目前它完全隐藏了这个领域。这怎么能实现呢?
我在myapp_extras.py中的代码: from django import template register = template.Library() @register.inclusion_tag('new/userinfo.html') def address(): address = request.session['address'] return {'address':address} 在'settings.py'中: TEMPLATE_CONTEXT_PROCESSORS =( "django.core.context_processors.auth", "django.core.context_processors.debug", "django.core.context_processors.i18n", "django.core.context_processors.media", 'django.core.context_processors.request' ) 但我得到一个错误: TemplateSyntaxError at /items/ Caught an exception while rendering: global name 'request' is not defined Original Traceback (most recent call last): File "C:\Python25\lib\site-packages\django\template\debug.py", line 71, in render_node result = node.render(context) […]
我即将开始与客户端的AngularJS和服务器端的Django项目。 什么是使他们像最好的朋友一样工作的最佳实践(静态文件,authentication,部署等)
我用一些模型创build了一个新的应用程序,现在我注意到一些模型没有经过深思熟虑。 由于我没有提交代码,所以明智的做法是将数据库迁移到最后状态,并使用更好的模型重新进行迁移。 在这种情况下,最后的良好状态是新应用程序不存在的数据库。 我如何从Django 1.7的初始迁移中迁移回来? 在South可以这样做: python manage.py migrate <app> zero 这将从迁移历史中清除<app> ,并删除<app>所有表。 如何用Django 1.7迁移做到这一点?
我遇到了一个范式问题。 我不知道是否应该将钱存储为Decimal(),或者如果我应该将其存储为string并将其自动转换为小数。 我的推理是这样的: PayPal需要2位小数 ,所以如果我有一个产品甚至是49美元,PayPal希望看到49.00电线。 Django的DecimalField()不设置十进制数。 它只存储最大小数位数量。 所以,如果你有49个字段,并且字段设置为2个小数位,它仍然会将其存储为49.我知道,Django基本上是从数据库反序列化为Decimal时的types转换(因为数据库没有十进制字段),所以我并不是完全关心速度问题,就像我在处理这个问题的devise问题一样。 我想做可扩展性最好的。 或者,更好的是,有没有人知道如何configuration一个Django的DecimalField()来始终使用TWO_PLACES格式样式进行格式化。
我正在努力让自己的头靠近Django的ORM。 我想要做的是获得我的桌子上一个字段内的不同值的列表….相当于下列之一: SELECT DISTINCT myfieldname FROM mytable (或者可选地) SELECT myfieldname FROM mytable GROUP BY myfieldname 我至less喜欢用Django的方式,然后诉诸原始的SQL。 例如,用一个表格: 身份证,街道,城市 1,赫尔大街 2,其他街,赫尔 3,Bibble路,莱斯特 4,另一种方式,莱斯特 5,高街,Londidium 我想得到: 赫尔,莱斯特,Londidium。
我必须使用Django的ORM将8000多条logging插入SQLite数据库。 这个操作需要每分钟大约一次的cronjob运行。 目前我正在使用for循环遍历所有项目,然后逐个插入它们。 例: for item in items: entry = Entry(a1=item.a1, a2=item.a2) entry.save() 什么是这样做的有效方式? 编辑:两个插入方法之间的一点点比较。 没有commit_manually装饰器(11245logging): nox@noxdevel marinetraffic]$ time python manage.py insrec real 1m50.288s user 0m6.710s sys 0m23.445s 使用commit_manually装饰器(11245logging): [nox@noxdevel marinetraffic]$ time python manage.py insrec real 0m18.464s user 0m5.433s sys 0m10.163s 注意:除了插入到数据库之外, testing脚本还执行一些其他操作(下载ZIP文件,从ZIP压缩文件中提取XML文件,parsingXML文件),因此执行所需的时间不一定代表插入所需的时间logging。
我需要从一个Django模板中执行一个过滤的查询,以获得一组等同于视图内的python代码的对象: queryset = Modelclass.objects.filter(somekey=foo) 在我的模板中,我想要做的 {% for object in data.somekey_set.FILTER %} 但我似乎无法find如何写FILTER。