小编Kar*_*arl的帖子

Django使用kwargs的成功网址

我试图修改我的get_success_url,如果有任何kwargs传递给它,我可以使用它们构建返回的URL.

以下是我到目前为止的情况:

class CalcUpdate(SuccessMessageMixin, UpdateView):
    model = Calc
    template_name = 'calc/cru_template.html'
    form_class = CalcForm

    def archive_calc(self, object_id):
        model_a = Calc.objects.get(id = object_id)
        model_b = Calc()

        for field in model_a._meta.fields:
            setattr(model_b, field.name, getattr(model_a, field.name))
        model_b.pk = None
        model_b.save()

        self.get_success_url(idnumber = model_b.pk)

    def form_valid(self, form):
        #objects
        if self.object.checked == True:
            object_id = self.object.id
            self.archive_calc(object_id)
        #save

    def get_success_url(self, **kwargs):         
        if  kwargs != None:
            return reverse_lazy('detail', kwargs = {'pk': kwargs['idnumber']})
        else:
            return reverse_lazy('detail', args = (self.object.id,))
Run Code Online (Sandbox Code Playgroud)

到目前为止,这只是keyerror详细介绍'idnumber' …

python django

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

在Django中将字段从一个实例复制到另一个

我有以下代码,它将一个现有实例复制并“归档”到另一个模型中,然后删除它,并用草稿副本替换它。

当前代码

def archive_calc(self, rev_num, primary_field):
    model_a = Calc.objects.get(tag_number__tag_number = primary_field, revision_number = rev_num) #Current Revision instance
    model_b = CalcArchive() #Draft instance

    #Copies data to archive model
    for field in model_a._meta.fields:
        setattr(model_b, field.name, getattr(model_a, field.name))

    model_b.pk = None
    model_b.current_revision = False
    model_b.save()

    model_a.delete()
Run Code Online (Sandbox Code Playgroud)

效果很好,但是我需要更改系统以允许某些带有外键的模型,因为当实例被存档/删除时,相关记录也随之删除。因此,解决此问题的想法是将草稿记录中的更改复制到先前的记录中,然后删除草稿,从而维护与外键相关的记录。

解决思路

def archive_calc(self, rev_num, primary_field):
    model_a = Calc.objects.get(tag_number__tag_number = primary_field, revision_number = rev_num) #Current Revision instance
    model_b = CalcArchive() #Archive Instance
    model_c = Calc.objects.get(pk = self.object.pk) #Draft instance

    #Copies data to archive model
    for field in …
Run Code Online (Sandbox Code Playgroud)

python django

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

如何使用 python 和 openssl 验证 webhook 签名

我正在尝试验证传入的 webhook,到目前为止,生成的哈希与 api 生成的测试哈希不匹配。

文档列出了以下 Ruby 示例,但是我使用的是 Python/Django,因此对于“转换”此函数的任何帮助将不胜感激!

红宝石函数

# request_signature - the signature sent in Webhook-Signature
#      request_body - the JSON body of the webhook request
#            secret - the secret for the webhook endpoint

require "openssl"

digest = OpenSSL::Digest.new("sha256")
calculated_signature = OpenSSL::HMAC.hexdigest(digest, secret, request_body)

if calculated_signature == request_signature
  # Signature ok!
else
  # Invalid signature. Ignore the webhook and return 498 Token Invalid
end
Run Code Online (Sandbox Code Playgroud)

这大致是我到目前为止使用https://docs.python.org/3/library/hashlib.html整理的内容。

蟒蛇尝试

import hashlib

secret = "xxxxxxxxxxxxxxxxxx"
json_data = {json data}

h …
Run Code Online (Sandbox Code Playgroud)

python django openssl webhooks

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

标签 统计

django ×3

python ×3

openssl ×1

webhooks ×1