小编ram*_*sus的帖子

将整数格式化为带前导零的字符串的最佳方法?

我需要将前导零添加到整数以生成具有已定义数字位数的字符串($ cnt).将这个简单函数从PHP转换为Python的最佳方法是什么:

function add_nulls($int, $cnt=2) {
    $int = intval($int);
    for($i=0; $i<($cnt-strlen($int)); $i++)
        $nulls .= '0';
    return $nulls.$int;
}
Run Code Online (Sandbox Code Playgroud)

有没有可以做到这一点的功能?

python string-formatting

270
推荐指数
7
解决办法
35万
查看次数

如何在模型用户中使用Django中的contrib.auth创建独特的电子邮件字段

我需要contrib.auth通过确保电子邮件字段条目是唯一的来修补标准用户模型:

User._meta.fields[4].unique = True
Run Code Online (Sandbox Code Playgroud)

代码中最好的位置在哪里?

我想避免使用数字字段[4].用户字段['email']更好,但字段不是字典,只是列表.

另一个想法可能是打开一个新票证并上传一个带有新参数的补丁settings.py:

AUTH_USER_EMAIL_UNIQUE = True
Run Code Online (Sandbox Code Playgroud)

有关在Django用户模型中实现电子邮件地址唯一性的最正确方法的任何建议吗?

django django-models

62
推荐指数
7
解决办法
5万
查看次数

Django使用注释更新queryset

我想通过使用带注释的值更新queryset中的所有行.

我有一个简单的模型:

class Relation(models.Model):
    rating = models.IntegerField(default=0)

class SignRelation(models.Model):
    relation = models.ForeignKey(Relation, related_name='sign_relations')
    rating = models.IntegerField(default=0)
Run Code Online (Sandbox Code Playgroud)

我想要解释这段代码:

for relation in Relation.objects.annotate(total_rating=Sum('sign_relations__rating')):
    relation.rating = relation.total_rating or 0
    relation.save()
Run Code Online (Sandbox Code Playgroud)

并使用以下内容更新一个SQL请求:

Relation.objects.update(rating=Sum('sign_relations__rating'))
Run Code Online (Sandbox Code Playgroud)

不起作用:

TypeError: int() argument must be a string or a number, not 'Sum'
Run Code Online (Sandbox Code Playgroud)

要么

Relation.objects.annotate(total_rating=Sum('sign_relations__rating')).update(rating=F('total_rating'))
Run Code Online (Sandbox Code Playgroud)

也不起作用:

DatabaseError: missing FROM-clause entry for table "relations_signrelation"
LINE 1: UPDATE "relations_relation" SET "rating" = SUM("relations_si...
Run Code Online (Sandbox Code Playgroud)

为此可以使用Django的ORM吗?没有关于在文档中一起使用update()annotate()的信息.

django django-models django-queryset sql-update

35
推荐指数
3
解决办法
6692
查看次数

是否可以重新编写子流程?

我知道os.nice()它对于父进程来说是完美的,但是我需要对子进程进行处理.我找到了这样做的方法,但似乎不是很方便和过分:

os.system("renice -n %d %d" % ( new_nice, suprocess.pid ) )
Run Code Online (Sandbox Code Playgroud)

并且它在返回后不会返回得到很好的水平.

在python中有更简洁的方法来管理子进程吗?

python subprocess nice renice

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

Django芹菜任务在芹菜服务器启动时立即运行

我需要找到如何指定一种初始芹菜任务,它将以特别定义的方式启动所有其他任务.这个初始任务应该在芹菜服务器启动时立即运行,永远不会再运行.

python django celery django-celery

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

如何忽略/跳过python bandit安全问题报告中的某些问题?

我有很多django_mark_safe错误

>> Issue: [B703:django_mark_safe] Potential XSS on mark_safe function.
   Severity: Medium   Confidence: High
   Location: ...
   More Info: https://bandit.readthedocs.io/en/latest/plugins/b703_django_mark_safe.html
54 return mark_safe(f'<a href="{url}" target="_blank">{title}</a>')

>> Issue: [B308:blacklist] Use of mark_safe() may expose cross-site scripting vulnerabilities and should be reviewed.
   Severity: Medium   Confidence: High
   Location: ...
   More Info: https://bandit.readthedocs.io/en/latest/blacklists/blacklist_calls.html#b308-mark-safe
54 return mark_safe(f'<a href="{url}" target="_blank">{title}</a>')
Run Code Online (Sandbox Code Playgroud)

我很好奇是否有一种方法可以跳过或忽略这些行吗?我知道使用mark_safe可能会很危险,但是如果我想冒险怎么办?例如,此方法是在Django admin中显示自定义链接的唯一方法,所以我不知道其他任何选项,如果没有mark_safe

python django django-admin

6
推荐指数
4
解决办法
2418
查看次数

芹菜-在中间的子任务失败后,有办法继续执行链

我需要找到在任何中间子任务引发异常后如何继续使用immutable = True子任务执行链的方式。

我已经阅读了该主题和此问题的评论。现在,这些错误已修复,但是我需要实现相反的行为。我不需要停止执行链条。可能还有另一种方式可以以任何顺序依次执行独立任务列表而不在它们之间发送结果吗?而且我需要异步执行它们,因为在这种情况下,django-celery将存储有关每个任务的统计信息。

一种解决方案是使用以下方法覆盖所有子任务的主体:

try:
    ...
except Exception, e:
    logger.error('Exception raised: %s' % e)
    raise e
Run Code Online (Sandbox Code Playgroud)

但是在这种情况下,所有子任务都将以SUCCESS状态执行,并且在django-celery管理界面中对异常的回溯将毫无用处。

django celery django-celery

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

Django - 在没有{%load ..%}的情况下,通过自定义标记替换整个网站的内置模板标签

我想用这个片段中{% if %}的"smart if"自定义标签替换标准模板标签,因为我不想每次都写.此外,"smart if"将很快进入核心模板系统.{% load smart_if %}

我忘记了在哪里看到了一段执行此操作的代码.有谁知道如何更换内置的模板标签?

django django-templates

4
推荐指数
1
解决办法
1254
查看次数

如何在Django Admin Interface中显示外部链接?

我需要在管理界面网格列中生成外部链接,但它们显示为html代码:

<a href="http://www.site.com/">site</a>
Run Code Online (Sandbox Code Playgroud)

管理界面将我的链接翻译为html-entities,并且它们不显示为正确的链接.是否有可能在那里显示外部链接,而不是HTML代码?

我认为list_display_links不能用于此目的.

谢谢!

django django-admin

3
推荐指数
1
解决办法
1145
查看次数

Django - 如何将所有字段定义从一个模型复制到另一个模型而不继承

我需要使用它自己的表和所有没有Django继承机制的列来定义现有模型的extact副本.否则它使用OneToOne关系并保留父表中的所有重复字段,我绝对不需要.我只是想避免为我的第二个模型重复模型字段和方法定义.

有什么建议?

django django-models

3
推荐指数
1
解决办法
1089
查看次数

是否可以动态定义函数的参数名称?

现在我有这个代码:

        attitude = request.REQUEST['attitude']
        if attitude == 'want':
            qs = qs.filter(attitudes__want=True)
        elif attitude == 'like':
            qs = qs.filter(attitudes__like=True)
        elif attitude == 'hate':
            qs = qs.filter(attitudes__hate=True)
        elif attitude == 'seen':
            qs = qs.filter(attitudes__seen=True)
Run Code Online (Sandbox Code Playgroud)

最好动态定义"attitudes__xxxx"的名称.有没有办法做到这一点?

谢谢!

python django

2
推荐指数
1
解决办法
158
查看次数

如何在上传的文件/图像名称中使用主键ID?

我需要使用蒙版生成上传图像的名称

images/{{ uploaded_image.id }}.jpg
Run Code Online (Sandbox Code Playgroud)

我认为最好的方法是FileField.upload_to属性,但它写在这里:

在大多数情况下,此对象尚未保存到数据库,因此如果它使用默认的AutoField,则它可能还没有其主键字段的值.

在我的情况下,在save()方法中保存对象后重命名文件会更好吗?

django

2
推荐指数
1
解决办法
2252
查看次数

有没有办法在一行中定义2元组?

我没有在python中出现过.我需要用范围限制来定义字段'year'.现在我正在使用此代码,但我认为存在缩短的方法.

YEAR_CHOICE = []
for year in range(2020,1899,-1):
   YEAR_CHOICE += [(year, year)]
year = models.PositiveSmallIntegerField('Year', choices=YEAR_CHOICE, default=0)
Run Code Online (Sandbox Code Playgroud)

是否有任何方法可以在一行中定义2元组?也许我可以用其他方式制作我需要的东西?谢谢!

django django-models

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