在Django中如何访问自定义Django modeladmin中的2个字段值…包括/fieldset.html?

2024-04-20 06:18:15 发布

您现在位置:Python中文网/ 问答频道 /正文

编辑了我的代码:在模型管理员的自定义字段集中:

{%load app_extras %}

{% if field.field.name == 'mobile' %}
    <a target="hiddenIframe" href="http://url_to_call.php?exten={{request.user.employee_profile.extension}}&phone={{ field.field.value }}">Click-to-call</a>
{% my_mobile mobile=field.field.value as mob %}
    {% endif %}

    {% if field.field.name == 'sms_message' %}{{ mob }}
        <a target="hiddenIframe" href="http://url_for_send_sms.php?sms_message={{ field.field.value }}&phone={{ mob }}">Click-to-send-sms</a>
    {% endif %}

在这里,我试图访问手机号码,以及短信的消息字段的模型管理形式同时进行。你知道吗

我发现我需要使用自定义标记,所以我用app创建了templatetags模块_额外费用包含分配mobile值并按如下方式返回的函数:

@register.assignment_tag
def my_mobile(*args, **kwargs):
    m_mobile = int(kwargs['mobile'])
    return {'m_mobile': m_mobile }

在模板中fiedset.html文件上面的注释更改:返回一个长值:{m\u mobile':1234534519L} 在浏览器上看到超链接显示的url时:

http://url_for_send_sms.php/?sms_message=fgdfg&phone={%27m_mobile%27:%1234534519L}

如何访问手机号码?我的自定义标签正确吗?你知道吗


Tags: to模型sendapphttpurlfieldmessage
2条回答

试试看

{% for ln in fieldset %}
    {% for fld in ln %}
        {% if f.field.name == 'mobile' %}
            {{ f.field.value }}
        {% endif %}
    {% endfor %}
{% endfor %}

也许这不是最好的解决办法。。。但这是解决办法:)

我将标记中的输出格式化为:

@register.assignment_tag
def my_mobile(*args, **kwargs):
    m_mobile = ("%d" %int(kwargs['mobile']))
    return {'m_mobile': m_mobile }

在模板中字段集.html将代码更改为:

{% if field.field.name == 'sms_message' %}
        <a target="hiddenIframe" href="http://url_for_send_sms.php?sms_message={{ field.field.value }}&phone=={{ mob.m_mobile }}">Click-to-send-sms</a>
    {% endif %}

重要提示:在django modeladmin(在我的例子中)中,mobile number和sms\ u消息都在字段集的同一行中。所以上面的代码属于循环{%for line in fieldset%}循环

相关问题 更多 >