小编Kro*_*mey的帖子

Perl $$ var - 作为sigil的两个美元符号?

这似乎是我应该能够轻松地使用Google,Bing或DDG的东西,但是我对所有东西都是空洞的.

基本上,我的任务是(部分)重写一组旧的Perl脚本.我自己并不是Perl程序员,在阅读这些脚本以确定他们正在做什么时,肯定会有一个学习曲线,但是我用这样的线条击中了一个绝对的砖墙:

$comment = $$LOC{'DESCRIPTION'};
Run Code Online (Sandbox Code Playgroud)

我可以说,右边是一个字典,或者更确切地说,它是获取'DESCRIPTION'所述字典中的键引用的值.但是前面有"额外"美元符号的是什么?

它看起来很像PHP的变量变量,但在搜索引擎,各种StackExchange站点和perlvar之后,我找不到Perl甚至这样一个功能的任何迹象,更不用说这就是它被调用的方式了.我发现的最多的是'$'不是变量名中的有效字符,所以我知道$$LOC不只是调用恰好被命名的变量$LOC.

这个多余的美元符号在这做什么?

perl

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

手动渲染MultiValueField的子字段

在我的Django 1.7应用程序中,我正在尝试利用MultiValueField类来实现密码/确认密码表单元素,即两个单独的密码字段,要求用户输入然后确认新密码.我已经clean()在我的表单上使用了两个单独的字段和一个方法,但"单个"MultiValueField似乎是维护DRY原则的更好方法,特别是因为我不仅需要在我的用户注册表单中复制它,当用户想要更改密码时.

但是,我的前端非常具体,并且不像Django的默认表单输出,所以我手动渲染我的表单字段.这很有效 - 直到我进入MultiValueField.对于每个表单字段,我的HTML如下所示:

<div class="row collapse">                                                                                                                                                                                                                                    
    <div class="small-2 columns">                                                                                                                                                                                                                             
        <span class="prefix"><i class="fi-mail"></i></span>                                                                                                                                                                                                   
    </div>                                                                                                                                                                                                                                                    
    <div class="small-10  columns {% if form.email.errors %}error{% endif %}">                                                                                                                                                                                
        {{ form.email }}                                                                                                                                                                                                                                      
        {% if form.email.errors %}<small class="error">{{ form.email.errors }}</small>{% endif %}                                                                                                                                                             
    </div>                                                                                                                                                                                                                                                    
</div>
Run Code Online (Sandbox Code Playgroud)

我需要为每个子字段做类似的格式化form.password,但是我尝试过的任何东西都没有给我一个渲染的子字段; 我最接近的是{{ form.fields.password.fields.0 }}在我的模板中,这给了我类似的输出<app.fields.PassField object at 0x7fb619821ef0>,但这显然不是渲染的表单字段.

是否有一些简单而明显的东西让我失踪,或者我正在努力做的只是在Django中不可能做到的?

django django-templates django-forms python-3.x

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