有没有更好的方法将Python/Django代码格式化为有效的PEP8?

2024-09-30 01:24:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两种方法编写的代码,我看到它们都有缺陷。有没有其他的方法来写这个,或者是一种方法比另一种更“正确”?在

def functionOne(subscriber):
    try:
        results = MyModelObject.objects.filter(
            project__id=1,
            status=MyModelObject.STATUS.accepted,
            subscriber=subscriber).values_list(
                'project_id',
                flat=True).order_by('-created_on')
    except:
        pass
^{pr2}$

这是有效的代码,这是不正确的代码,我撕了一个类似的代码块来举例说明对象.过滤器第节。请不要浪费时间评论代码的其他部分。我将try/except放在那里,以强制缩进将某些元素推到新行上(80列)


Tags: 方法代码projectidobjectsdefstatusfilter
1条回答
网友
1楼 · 发布于 2024-09-30 01:24:18

我会这样做:

def functionOne(subscriber):
    try:
        results = MyModelObject.objects.filter(
            project__id=1,
            status=MyModelObject.STATUS.accepted,
            subscriber=subscriber
        ).values_list(
           'project_id',
           flat=True
        ).order_by(
            '-created_on'
        )
    except:
        pass

使用缩进使层次结构更具可读性。然而,这个代码不是特别好。在视图中直接使用这样的代码应该被视为反模式。对于这种重复出现的代码,Managers模型可能是一个更好的选择。在

您可能需要阅读http://dabapps.com/blog/higher-level-query-api-django-orm/

相关问题 更多 >

    热门问题