小编Lud*_*udo的帖子

Django模板中的IsInstance?

有没有办法在Django模板中执行isinstance/issubclass?我意识到我可以编写自己的模板标签,但我很惊讶这不可能让我觉得我做错了什么或者遗漏了一些明显的东西.

我希望显示两个不同的标记段,具体取决于我在我的集​​合中迭代时显示的项目类型.谢谢!

django django-templates

7
推荐指数
2
解决办法
5391
查看次数

django rest框架在nginx后面给出403而不是直接

使用django-rest-framework.我在nginx后面的生产中运行时遇到HTTP 403错误.当我调用从APIView继承以支持GET操作的特定视图时,我得到:

{"detail": "Invalid username/password"}
Run Code Online (Sandbox Code Playgroud)

但是......我只能在浏览器中看到这个.当我使用curl获取相同的URL时,我不明白.我是否在Chrome和Firefox中直接点击URL或通过AJAX加载URL时出现此错误.

如果我首先通过管理员帐户通过Django Admin登录,我不会收到错误.

另外,我只是得到这个是我从nginx后面运行.如果我使用Django dev服务器或gunicorn运行,并直接点击端口,我很好,并且可以愉快地匿名访问该URL.如果我然后把nginx放在这个前面,转发到同一个gunicorn/runserver我得到这个错误.

也许这与我的nginx proxy_pass设置有关?

location / {
    proxy_pass http://127.0.0.1:8000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
Run Code Online (Sandbox Code Playgroud)

我正在运行django rest framework 2.2.6,Django 1.5和nginx 1.2.7.

我在休息框架中将限制设置为一个愚蠢的高数字,并查看默认情况下所有似乎都打开的权限(但也明确设置).

谁能指出我正确的方向?

谢谢!

卢多.

django nginx django-rest-framework

7
推荐指数
2
解决办法
4332
查看次数

对于Paypal IPN,auth_amount和mc_gross之间的区别是什么?

我很难从文档中找到这个.我有一些我继承的代码,需要从Paypal IPN交易中获得付款金额.它期望来自Paypal IPN的变量"auth_amount"但是没有通过这个字段.它从Paypal文档看起来好像我应该使用字段"mc_gross",该字段被标记为"客户付款的全部金额,然后扣除交易费用".

Paypal IPN文档将"auth_amount"字段描述为"授权金额",这对我来说意义不大.

我要改变它以使用mc_gross,但我只是想先检查一下我是不是错过了一些愚蠢的东西?

谢谢!

paypal paypal-ipn

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

Django Admin就像我的ModelForm中的Inlines一样

我正在尝试复制Django管理员中的内联,以便在我自己的非管理员ModelForm上的FKd模型上添加相关模型.特别是,当您使用StackeAdminInline并获得Javascript的"+ Add another XXX"位以添加更多相关模型时.

如果管理员可以这样做,那一定是可能的,但我找不到一个项目,其中包含如何执行此操作的示例.谁能指点我的东西?我正在使用Crispy Forms,尽管如果需要也很高兴.我确实看到了https://github.com/runekaagaard/django-crispy-forms-fancy-formsets,但好像这不是Crispy维护者的首选,并且认为必须有更多的Djangoic方式来做到这一点管理员可以做到这一点.

谢谢!

forms django admin inlines inline-formset

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

尽管队列看起来为空,但 Celery Redis 实例已满

我们有一个需要使用 Celery 获取大量数据的 Django 应用程序。每隔几分钟就有 20 个左右的 celery 工人在运行。我们在 Google Kubernetes Engine 上运行,并使用 Cloud memorystore 使用 Redis 队列。

根据 Flower 的说法,即使队列为空,我们用于 celery 的 Redis 实例也已满。这会导致 Redis DB 最终被填满并且 Celery 抛出错误。

在 Flower 中,我看到任务进进出出,并且我已经增加了工作人员,现在队列总是空的。

如果我运行,redis-cli --bigkeys我会看到:


# Scanning the entire keyspace to find biggest keys as well as
# average sizes per key type.  You can use -i 0.1 to sleep 0.1 sec
# per 100 SCAN commands (not usually needed).

[00.00%] Biggest set    found so far '_kombu.binding.my-queue-name-queue' with …
Run Code Online (Sandbox Code Playgroud)

python django redis celery google-cloud-platform

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

Django Window 注释与distinct 子句结合使用

我有一个存储在 Postgres 数据库中的 Django 模型,它由不规则间隔的计数值组成:

WidgetCount
 - Time
 - Count
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用带有 Lag 的窗口函数来为我提供前一行的值作为注释。我的问题是当我尝试将它与一些不同的日期截断结合起来时,窗口函数使用源行而不是明显分组的行。

例如,如果我有以下几行:

time                count
2020-01-20 05:00    15
2020-01-20 06:00    20
2020-01-20 09:00    30
2020-01-21 06:00    35
2020-01-21 07:00    40
2020-01-22 04:00    50
2020-01-22 06:00    54
2020-01-22 09:00    58
Run Code Online (Sandbox Code Playgroud)

我想返回一个显示每天第一次阅读的查询集,我可以使用:

from django.db.models.functions import Trunc

WidgetCount.objects.distinct("date").annotate(date=Trunc("time", "day"))
Run Code Online (Sandbox Code Playgroud)

这给了我:

date        count
01/01/20    15
01/01/21    35
01/01/22    50
Run Code Online (Sandbox Code Playgroud)

我想添加一个注释,它给我昨天的值(这样我就可以显示每天的变化)。

date        count   yesterday_count
01/01/20    15
01/01/21    35      15
01/01/22    50      35
Run Code Online (Sandbox Code Playgroud)

如果我做:

from django.db.models.functions import Trunc, Lag
from django.db.models import Window

WidgetCount.objects.distinct("date").annotate(date=Trunc("time", "day"), …
Run Code Online (Sandbox Code Playgroud)

django postgresql django-orm

6
推荐指数
2
解决办法
614
查看次数

Python中Django模型的类级属性

我有一个Django模型存储一些不经常更改但经常使用的数据.我正在寻找一种模式,以便我可以将它们称为一种静态类变量,例如,SomeModel.Bar或者SomeModel.Baz.

目前我正在使用静态方法,如下所示:

class SomeModel(models.Model):
    name = models.CharField(max_length=100)

    @staticmethod
    def Baz():
        #retrieve from cache or lookup Baz item
        return baz
Run Code Online (Sandbox Code Playgroud)

意思是我将这些项称为SomeModel.Baz(),但这感觉不太对劲.我只是觉得我做错了什么.我不想把它变成属性,因为我不希望实例引用该项.

任何人都可以指出我的模式或示例,告诉我是否可以这种方式实现类级属性?或者告诉我为什么我应该做一些完全不同的事情?谢谢 :).

python django

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

使用docker swarm从私有注册表运行容器

我正在尝试使用docker swarm从私有注册表运行映像.

我有一个标记我已经标记并推送到私人注册表.如果我在本地运行:

docker run -p 8000:8000 -d registry.mydomain.com:8080/myimage

它运行正常.

如果我激活我的群并尝试从那里运行:

$(docker-machine env --swarm swarm-master) docker login registry.mydomain.com:8080 docker run -p 8000:8000 -d registry.mydomain.com:8080/myimage

我得到"需要身份验证".

我实际上是试图通过docker远程API来做到这一点,但首先我想我应该在命令行上运行它.

这可能吗?

谢谢!

docker

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

我应该如何最好地在Python中存储定点小数以获取加密货币?

我正在开发一个Django / Python应用程序,该应用程序存储并计算加密货币值。这些是十进制数值到8个小数位,例如0.00000008、4.10500008、6000.00000000。

也许部分是由于对Python的Decimal的工作方式的细微差别没有完全的信心,部分是由于我对不同语言看到的建议,我认为将值存储为BigInteger字段中的satoshi equiv值可能更安全,例如0.00000008我存储8,对于4.10500008我存储410500008,对于6000.00000000我存储600000000000。

这是个好主意还是应该将Decimal与某些特定设置结合使用?

谢谢!

python django decimal

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

Python Imports Convention

我注意到在Python代码中,通常首选显式导入所需模块的部分,例如

from django.core.urlresolvers import reverse
from django.db import models
Run Code Online (Sandbox Code Playgroud)

但是,我注意到这似乎不是Python标准库模块的情况,我通常会看到,例如:

import os
import sys

something = os.path.join('home', 'ludo')
other = sys.argv('dunno')
Run Code Online (Sandbox Code Playgroud)

代替

from os.path import join
from sys import argv

something = join('home', 'ludo')
other = argv('dunno')
Run Code Online (Sandbox Code Playgroud)

对此有任何推理或记录的约定吗?

python

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