小编Dhi*_*aTN的帖子

Django-paypal:带有无效回发的IPN请求

我正在建立一个电子商务网站,django-paypal用于接受Paypal付款.

95%的情况下,一切都运行完美,用户可以付费,无论是沙箱,还是接收他们购买的东西.

然而,另外5%的时间,而不是VERIFIED"或INVALID"作为响应代码,我得到:Invalid postback. (<html> <body> Fatal Failure <br> </body> </html> )

这可以防止我们的程序知道该怎么做,因此付款会在我们这边得到验证即使付款在IPN和Paypal方面被标记为"完整".

django paypal django-paypal paypal-ipn python-3.x

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

用于连接django模型中数据的性能优化

在我的工作中,我经常在我的django模型中有两个表,并且必须连接它们以将此数据作为csv返回.该数据未通过外键连接,但它们具有连接它们的标识符.这是因为我们从两个不同的源导入这些数据,有时缺少对应的数据,因此在创建条目时无法连接它.

我的问题是:如果你想到我经常要返回这些数据,那么在性能方面连接这些数据的最佳方法是什么?

  1. 方式:创建一个新模型,将数据(如m2m)或父类与标识符连接起来,两者都连接到.
class OrderInvoiceConnector(models.Model):
    order_data = models.ForeignKey(Order, related_name="invoice")
    invoice_data = models.ForeignKey(Invoice, related_name="order")
Run Code Online (Sandbox Code Playgroud)
  1. 方式:创建一个仅保存csv导出所需数据的新模型.就像是:
class ConnectedData(models.Model):
    invoice_id = models.CharField(max_length=255)
    country_iso = models.CharField(max_length=255)
    invoice_date = models.CharField(max_length=255)
    tax = models.FloatField(max_length=255)
    price = models.FloatField()
Run Code Online (Sandbox Code Playgroud)

python django performance django-models database-performance

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

如何使用django-simple-history恢复更改,特别是删除

我们django-simple-history为我们的模型做好了准备.最近,一大堆模型被神秘地删除了.事实发生后几天就注意到了这一点,因此避免完整的数据库备份恢复会很好,因为这样可以消除事后发生的手动更改.

我找不到任何方法来轻松恢复模型实例,特别是删除的模型实例.我可以查询模型的历史版本并查找已删除的所有内容.有了这个,我还可以观察到他们所有人都有删除作为他们的最后一次改变.我可以在history-1上使用instance属性来获取删除前的状态,但是如果我尝试保存它是错误的,因为模型实例已被删除而且不再存在.

基本上,如果我有django-simple-history的历史记录,那么恢复已删除模型实例的最简洁方法是什么?如果可能的话,我想保留历史记录,所以在完全重新创建对象之前,我正在研究任何解决方案.

django django-simple-history

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

在 Ubuntu 中将 CELERY 作为守护进程运行

如何在 ubuntu 中将 celery 作为守护进程服务运行,而不是celery -A projname worker -l info每次都运行“”命令。

我使用的是 celery 3.1.8 版本....

ubuntu daemon celery

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

Django:模型之间的参考

救命!

我有以下两种型号:

class Account(models.Model):
    username = models.OneToOneField(User, primary_key=True, unique=True)
    receiveaddress = models.CharField(max_length=40, blank=True, null=True, unique=True)
    balance = models.DecimalField(max_digits=16, decimal_places=8, default=0)

    def __str__(self):
        return str(self.username)


class Deposits(models.Model): 
    receiveaddress = models.CharField(max_length=40, blank=True, null=True, unique=True)
    amount = models.DecimalField(max_digits=16, decimal_places=8, default=0)

    user = ?????????????????

    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    confirmed = models.BooleanField(default=False)
    accounted = models.BooleanField(default=False)  

    def __str__(self):
        return str(self.receiveaddress)
Run Code Online (Sandbox Code Playgroud)

示例: 可视化

我的问题:

我希望"Deposits.user" 自动引用此"receiveaddress"所属的用户.在这个例子中,那是TIM.我浪费了6个小时试图搞清楚,我做错了什么?

提前致谢.

python database django django-models

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

MongoEngine 删除文档

我有以下 MongoEngine 文档

{
    '_id': 'some_id',
    'data': 'some_data'
}
Run Code Online (Sandbox Code Playgroud)

如何delete使用 MongoEngine 编写此文档?

我试过的:

import my_collection

obj = my_collection.MyCol.objects.get(_id='some_id')
# obj is correctly found - let's continue

obj.delete()
# mongoengine.errors.ValidationError: 'None' is not a valid ObjectId

obj.delete('some_id')
# TypeError: delete() takes 1 positional argument but 2 were given

obj.delete(_id='some_id')
# mongoengine.errors.ValidationError: 'None' is not a valid ObjectId
Run Code Online (Sandbox Code Playgroud)

--注意

奇怪的是,以下工作完美:

my_collection.MyCol.objects.delete()
# delete all documents in the collection
Run Code Online (Sandbox Code Playgroud)

但是我已经关注了MongoEngine文档,但仍然无法仅删除一个特定的文档

python mongodb mongoengine

5
推荐指数
2
解决办法
4708
查看次数

找到在Group(Django渠道)中添加的所有用户(reply_channels)

我正在使用Django渠道小组来构建聊天系统,并希望获取聊天室中的所有用户.

集团提供以下方法:

  • Group("group_name").add(message.reply_channel)
  • Group("group_name").discard(message.reply_channel)
  • Group("group_name").send({"text": "My group message",})

但是没有什么可以找到Group中的所有用户(reply_channel).

谢谢

python django chat django-channels

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

Django ArrayField的序列化转义了带有太多反斜杠的重音字符

Django为我们提供了ArrayField:一个PostgreSQL特定的模型字段,允许存储数据列表.

我用它来模拟Article对象:

authors = ArrayField(models.Charfield) 
title = models.CharField
Run Code Online (Sandbox Code Playgroud)

例如,这是数据库中的一个条目:

  • authors = {"PierreStévens","Jacques Dupont"}
  • title = Sur leterraincrétacédeLiège

我想将所有文章导出为JSON:

query_set = Article.objects.all()
articles_json = serialize('json', fields('authors', 'title')
Run Code Online (Sandbox Code Playgroud)

ArrayField"authors"的序列化使用四个反斜杠而不是两个反转字符"é".常规"标题"字段已正确转义.看看差异:

articles_json = {"title":"Sur le terrain cr\\u00e9tac\\u00e9 de Li\\u00e9ge", "authors": "[\\"Pierre St\\\\u00e9\\", "Jacques Dupont"]"}
Run Code Online (Sandbox Code Playgroud)

客户不理解这一点.为了使它工作,我只是搜索并替换字符串

articles_json = articles_json.replace('\\\\','\\')
Run Code Online (Sandbox Code Playgroud)

我真的不确定这个解决方法.你有没有试过这个问题?你是怎么解决的?

django postgresql encoding json

5
推荐指数
0
解决办法
215
查看次数

外置硬盘上的Docker卷

我正在使用postgres映像在本地运行容器。我需要处理大量数据,并且我想为此使用外部硬盘驱动器。是否可以在外部硬盘驱动器上装载卷?我可以用Flocker完成我想要的吗?

我正在为Mac使用本机docker。

docker flocker

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

ElasticBeanstalk Docker,一个Container还是多个Container?

我们正在开发一个新的REST API,它将使用Docker部署在AWS ElasticBeanstalk上.它使用Python Celery进行预定作业,这意味着需要为工作人员运行单独的进程,我们当前的Docker配置有三个容器......

Multicontainer Docker:

09c3182122f7    sso    "gunicorn --reload --"    18 hours ago    Up 26 seconds                            sso-api
f627c5391ee8    sso    "celery -A sso worker"    18 hours ago    Up 27 seconds                            sso-worker
f627c5391ee8    sso    "celery beat -A sso -"    18 hours ago    Up 27 seconds                            sso-beat
Run Code Online (Sandbox Code Playgroud)

传统观点认为我们应该在ElasticBeanstalk上使用多容器配置,但由于所有容器都使用相同的代码,因此从OPS的角度来看,使用带有Supervisord的单个容器配置来管理进程可能更有效,更简单.

单个容器带Supervisord:

[program:api]
command=gunicorn --reload --bind 0.0.0.0:80 --pythonpath '/var/sso' sso.wsgi:application
directory=/var/sso

[program:worker]
command=celery -A sso worker -l info
directory=/var/sso
numprocs=2

[program:beat]
command=celery beat -A sso -S djcelery.schedulers.DatabaseScheduler
directory=/var/sso
Run Code Online (Sandbox Code Playgroud)

当在AWS内存上设置多容器配置分配给每个容器时,我的想法是让容器OS在内部处理内存分配而不是将其显式设置到每个容器更有效.我不太了解多容器Docker如何在ElasticBeanstalk下运行,以智能地推荐这种或那种方式.

这种情况的最佳配置是什么?

django amazon-web-services celery supervisord docker

5
推荐指数
0
解决办法
466
查看次数