小编Bel*_*dez的帖子

Pythonic方法检查是否:所有元素评估为False -OR-所有元素评估为True

我希望函数的结果是:

  • 所有值都计算为False(None,0,空字符串) - > True
  • 所有值都评估为True - > True
  • 其他每一个案例 - >错误

这是我的尝试:

>>> def consistent(x):
...  x_filtered = filter(None, x)
...  return len(x_filtered) in (0, len(x))
...
>>> consistent((0,1))
False
>>> consistent((1,1))
True
>>> consistent((0,0))
True
Run Code Online (Sandbox Code Playgroud)

[奖金]

该功能应该命名为什么?

python

13
推荐指数
2
解决办法
5077
查看次数

分析Notepad ++的Python正确性(即lint)

有没有人知道像记事本++的pylintpychecker之类的东西?或者也许如何在记事本++中使用pylint.

python ide pylint notepad++ pychecker

12
推荐指数
1
解决办法
6254
查看次数

在Django模型中表示工作日的多选字段

我一直在寻找一种优雅的方式来代表Django模型中的多选工作日领域(周一,周二,周三......).我最初想的是使用按位数学运行整数字段,但我不确定这是否可行.

这将是一个主要阅读的领域.我希望Queryset方法类似于Entry.objects.get(weekdays__contains=MONDAY)Where MONDAY将是一个常量.

也许有人可以提出更好的解决方案?或者也许有人做过类似的事情并且有一些他们可以贡献的示例代码?

python django django-models

9
推荐指数
1
解决办法
4718
查看次数

通过Model的属性(不是字段)对Django QuerySet进行排序

一些代码和我的目标

我的(简化)模型:

class Stop(models.Model):
    EXPRESS_STOP = 0
    LOCAL_STOP   = 1

    STOP_TYPES = (
        (EXPRESS_STOP, 'Express stop'),
        (LOCAL_STOP, 'Local stop'),
    )

    name = models.CharField(max_length=32)
    type = models.PositiveSmallIntegerField(choices=STOP_TYPES)
    price = models.DecimalField(max_digits=5, decimal_places=2, null=True, blank=True)

    def _get_cost(self):
        if self.price == 0:
            return 0
        elif self.type == self.EXPRESS_STOP:
            return self.price / 2
        elif self.type == self.LOCAL_STOP:
            return self.price * 2
        else:
            return self.price    
    cost = property(_get_cost)
Run Code Online (Sandbox Code Playgroud)

我的目标:我想按照cost物业排序.我尝试了两种方法.

使用order_by QuerySet API

Stops.objects.order_by('cost')
Run Code Online (Sandbox Code Playgroud)

这产生了以下模板错误:

Caught FieldError while rendering: Cannot resolve keyword 'cost' into …
Run Code Online (Sandbox Code Playgroud)

python django-templates django-models

9
推荐指数
1
解决办法
4578
查看次数

Django - 重建没有其中一个变量的查询字符串

我有一个处理GET请求的Django视图.我想重建查询字符串以包含一个之外的所有变量.

我最初使用列表理解:

>>> from django.http import QueryDict
>>> q = QueryDict('a=2&b=4&c=test') // <--- make believe this is request.GET
>>> z = QueryDict('').copy()
>>> z.update(dict([x for x in q.items() if x[0] != 'b']))
>>> z.urlencode()
Run Code Online (Sandbox Code Playgroud)

但我相信这可能是一个更好的解决方案:

>>> from django.http import QueryDict
>>> q = QueryDict('a=2&b=4&c=test') // <--- make believe this is request.GET
>>> z = q.copy()
>>> del z['b']
>>> z.urlencode()
Run Code Online (Sandbox Code Playgroud)

谁能想到更好的方法?

python django django-views

9
推荐指数
2
解决办法
7777
查看次数

规范化Django/Python中的街道地址

我有一个Django表单,其中一个字段是TextInput街道地址.

我想规范化数据.例如:

>> normalize('420 East 24th St.')
'420 E. 24th Street'

>> normalize('221 Amsterdam Av')
'221 Amsterdam Ave.'

>> normalize('221 Amsterdam Avenue')
'221 Amsterdam Ave.'
Run Code Online (Sandbox Code Playgroud)

或类似的东西.我已经在使用geopy进行地理编码了.也许这可能有帮助吗?

另外:我应该在哪里正常化?在数据库模型中还是在表单字段的clean函数中?

python django django-models django-forms geopy

8
推荐指数
1
解决办法
7812
查看次数

Django:保存模型时检测一组字段的更改

问题

我的模型中有一个需要计算的字段.我想在保存模型时执行这些计算.但是,因为它是资源密集型的,所以我只想在某些字段发生变化时执行这些计算.

最初的想法

将3个字段的哈希值保留为模型中的不同字段.在保存时,散列三个字段,如果等于当前在模型中保存的字段,则继续保存实例而无需进一步的工作.否则,执行计算,保存计算结果并保存新哈希.

我的问题:

  1. 这是最好的选择吗?如果没有,请分享哪些更好,为什么.

  2. 如果没有更好的方法:我应该使用哪种哈希?为什么?

  3. 我应该使用哪种Django模型字段类型来保存哈希?

python django hash django-models

6
推荐指数
1
解决办法
2461
查看次数

Python:将('周一','周二','周三')转换为'周一到周三'

我得到了一周中的一天.我想做的Python代码:

def week_days_to_string(week_days):
    """
    >>> week_days_to_string(('Sunday', 'Monday', 'Tuesday'))
    'Sunday to Tuesday'
    >>> week_days_to_string(('Monday', 'Wednesday'))
    'Monday and Wednesday'
    >>> week_days_to_string(('Sunday', 'Wednesday', 'Thursday'))
    'Sunday, Wednesday, Thursday'
    """
    if len(week_days) == 2:
       return '%s and %s' % weekdays
    elif week_days_consecutive(week_days):
       return '%s to %s' % (week_days[0], week_days[-1])
    return ', '.join(week_days)
Run Code Online (Sandbox Code Playgroud)

我只需要week_days_consecutive功能(困难部分).

任何想法我怎么能做到这一点?

澄清:

我的措辞和例子引起了一些混乱.我不仅希望将此功能限制在工作周.我想考虑一周中的所有日子(S,M,T,W,T,F).我很抱歉昨晚不清楚这一点.编辑了问题的正文,使其更加清晰.

编辑:把一些扳手扔进去

环绕顺序:

>>> week_days_to_string(('Sunday', 'Monday', 'Tuesday', 'Saturday'))
'Saturday to Tuesday'
Run Code Online (Sandbox Code Playgroud)

并且,根据@ user470379和可选:

>>> week_days_to_string(('Monday, 'Wednesday', 'Thursday', 'Friday'))
'Monday, Wednesday to Friday'
Run Code Online (Sandbox Code Playgroud)

python datetime date

6
推荐指数
1
解决办法
2958
查看次数

在不使用帐户的情况下设计Django投票系统

我们正在考虑实施投票系统(向上,向下投票),而不使用任何类型的凭证 - 没有应用账户,也没有OpenID或任何类型的.

关注点:

  1. 防止机器人投票
  2. 允许NAT下的个人投票而不会压倒/无效其他人的投票
  3. 防止(或者至少使得非常困难)用户不止一次投票

我的问题:

  1. 如果你已经实现了类似的东西,任何提示?
  2. 也许我忽略了任何担忧?
  3. 我应该研究哪些工具?

如果您有任何问题可以帮助您形成对这些问题的答案,请在评论中提问!

python django voting django-forms django-authentication

6
推荐指数
1
解决办法
1185
查看次数

使用Python检索街道地址的美国邮政编码

使用Python检索街道地址的美国邮政编码的最有效方法是什么?这有可能吗?

优选地,包括本地数据库的东西与某种远程API调用相反。

预先感谢您可能提供的任何帮助。

python gis

5
推荐指数
1
解决办法
5202
查看次数