小编ohr*_*rom的帖子

Django crispy-forms,BaseGenericInlineFormSet&allow_delete

我在使用django-crispy-forms时遇到了一个问题,我无法得到答案.我有一个相当复杂的表单布局,到目前为止,一切都非常好用cripy-forms.

表单的一部分使用通用内联formset.这也是有效的,但我的问题是,我无法弄清楚如何访问delete-checkbox(当can_delete = True时)

相应的代码类似于:

class BaseReleaseReleationFormSet(BaseGenericInlineFormSet): 

    def __init__(self, *args, **kwargs):

        self.instance = kwargs['instance']
        super(BaseReleaseReleationFormSet, self).__init__(*args, **kwargs)

        self.helper = FormHelper()
        self.helper.form_id = "id_relation_form"
        self.helper.form_class = 'form-horizontal'
        self.helper.form_method = 'post'
        self.helper.form_action = ''
        self.helper.form_tag = False

        base_layout = Row(
                Column(
                       Field('name', css_class='input-small'),
                       #Field('delete', css_class='input-small'),
                       css_class='span3'
                       ),
                Column(
                       Field('url', css_class='input-xlarge'),
                       css_class='span4'
                       ),
                css_class='row relation-row',
        )

        self.helper.add_layout(base_layout)
Run Code Online (Sandbox Code Playgroud)

name和url字段根据需要使用crispy-forms呈现,但delete-checkbox显示在表单的末尾.我无法在布局中访问它.

有人知道如何解决这个问题吗?有小费吗?提前致谢!

django form-layout django-crispy-forms

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

PIL/Pillow解码icc配置文件信息

我坚持解码/解析用PIL提取的ICC配置文件信息.

在包含"Adobe RGB(1998)"配置文件的测试图像下方.

# download the test image:
wget http://i.stack.imgur.com/62AHB.jpg
Run Code Online (Sandbox Code Playgroud)

-

from PIL import Image
path = '62AHB.jpg'
icc = Image.open(path).info.get('icc_profile') 
Run Code Online (Sandbox Code Playgroud)

到目前为止一直很好 - 但我找不到处理返回的ICC信息的方法.

上面的例子将返回:

'\x00\x00\x020ADBE\x02\x10\x00\x00mntrRGB XYZ\x07\xcf\x00\x06\x00\x03\x00\x00\x00\x00\x00\x00acspAPPL\x00\x00\x00\x00none\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\xf6\xd6\x00\x01\x00\x00\x00\x00\xd3-ADBE\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ncprt\x00\x00\x00\xfc\x00\x00\x002desc\x00\x00\x010\x00\x00\x00kwtpt\x00\x00\x01\x9c\x00\x00\x00\x14bkpt\x00\x00\x01\xb0\x00\x00\x00\x14rTRC\x00\x00\x01\xc4\x00\x00\x00\x0egTRC\x00\x00\x01\xd4\x00\x00\x00\x0ebTRC\x00\x00\x01\xe4\x00\x00\x00\x0erXYZ\x00\x00\x01\xf4\x00\x00\x00\x14gXYZ\x00\x00\x02\x08\x00\x00\x00\x14bXYZ\x00\x00\x02\x1c\x00\x00\x00\x14text\x00\x00\x00\x00Copyright 1999 Adobe Systems Incorporated\x00\x00\x00desc\x00\x00\x00\x00\x00\x00\x00\x11Adobe RGB (1998)\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00XYZ \x00\x00\x00\x00\x00\x00\xf3Q\x00\x01\x00\x00\x00\x01\x16\xccXYZ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00curv\x00\x00\x00\x00\x00\x00\x00\x01\x023\x00\x00curv\x00\x00\x00\x00\x00\x00\x00\x01\x023\x00\x00curv\x00\x00\x00\x00\x00\x00\x00\x01\x023\x00\x00XYZ \x00\x00\x00\x00\x00\x00\x9c\x18\x00\x00O\xa5\x00\x00\x04\xfcXYZ \x00\x00\x00\x00\x00\x004\x8d\x00\x00\xa0,\x00\x00\x0f\x95XYZ \x00\x00\x00\x00\x00\x00&1\x00\x00\x10/\x00\x00\xbe\x9c'
Run Code Online (Sandbox Code Playgroud)

如何解码这些信息?

数据中似乎有一些.在这种情况下,我基本上只需要"desc"的值,即 "Adobe RGB(1998)".

有任何想法吗?期待您的投入:)!

使用嵌入的Adobe RGB(1998)配置文件测试图像

python encoding color-profile python-imaging-library

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

Python相当于sprintf

有人有一个很好的提示如何将PHP函数移植到python?

/**
 * converts id (media id) to the corresponding folder in the data-storage
 * eg: default mp3 file with id 120105 is stored in
 * /(storage root)/12/105/default.mp3
 * if absolute paths are needed give path for $base
 */

public static function id_to_location($id, $base = FALSE)
{
    $idl = sprintf("%012s",$id);
    return $base . (int)substr ($idl,0,4) . '/'. (int)substr($idl,4,4) . '/' . (int)substr ($idl,8,4);
}
Run Code Online (Sandbox Code Playgroud)

python directory hash

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

在 Python 中解码 3D-Secure PaRes

我找不到解码从 3D-Secure ACS 服务回发的信息 (PaRes) 的方法。

有人知道如何解压缩/解码这个字符串吗?

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
Run Code Online (Sandbox Code Playgroud)

我在某处读到它可以是 base64 编码的 - 但我不知道如何使用 python 解码它。它最终也会被压缩吗?

欢迎任何输入!

python decode 3d-secure

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

Python正则表达式 - 从路径中提取目录

我有关于正则表达式/ Python的问题.很抱歉,如果这个主题已被讨论了数百万次 - 通常我会在so/google等上找到答案但是我被这个问题困在数百万的答案中......(说实话 - 我拥有一本正则表达式的书,但不知何故我太傻了,真的不明白......)

对于音乐管理系统,我需要从路径中提取信息,提供不同的选项集.这里有两个例子:

如果路径是:(案例1)

"/The Prodigy/The Fat Of The Land/04 - Funky Stuff.flac"
Run Code Online (Sandbox Code Playgroud) 它应该提取:
  • 艺术家:"The Prodigy"
  • 释放:"土地的肥肉"
  • 跟踪编号:4
  • 标题:"时髦的东西"

例如:(案例2)

"/[XLR 483] The Fat Of The Land/04 - The Prodigy - The  Funky Stuff.flac"
Run Code Online (Sandbox Code Playgroud) 应提取:
  • catno:"XLR 483"
  • 释放:"土地的肥肉"
  • 跟踪编号:4
  • 艺术家:"The Prodigy"
  • 标题:"时髦的东西"

不需要涵盖两种情况的正则表达式,这只是两个例子.然后我将它们作为选项提供(或者添加自己的选项).

任何帮助将不胜感激!

@ S.Lott:我没有这方面的正则表达式,我开始分割字符串:

parts = rel_path.split('/')       
track = parts[-1]
release = parts[-2]
artist = parts[-3]
Run Code Online (Sandbox Code Playgroud)

但这对我来说似乎是一种非常不灵活和不优雅的解决方案.

编辑:

到目前为止我有类似的东西:

pattern = re.compile('^/(?P<artist>[a-zA-Z0-9 ]+)/(?P<release>[a-zA-Z0-9 ]+)/(?P<track>[a-zA-Z0-9 -_]+).[a-zA-Z]*.*')


rel_path = '/The Prodigy/The Fat Of The Land/04 - …
Run Code Online (Sandbox Code Playgroud)

python regex path extraction

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