Django:复合URL

2024-10-02 20:41:17 发布

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

我正在尝试为我的公司创建一个简单的办公室管理网站。我有一个列出员工的主模板。每个员工都是html模板中的一个链接。你知道吗

<a href="{% url 'personnel:employee_detail' employee_id=employee.id %}">{{ employee }}</a>

要查看的链接:

def employee_detail(request, employee_id, **kwargs):

    payslips = Payslip.objects.filter(employee_id=employee_id)
    if not kwargs:
        active_payslip = Payslip.objects.filter(
            employee_id=employee_id,
            date=payslips.latest('date').date
        )
    else:
        active_payslip = Payslip.objects.filter(
            employee_id=employee_id,
            date='%s-%s-%s' % (year, month, day)
        )

    return render(request, 'employee_detail.html', {'active_payslip': active_payslip, {'payslips': payslips})

以及url(从主页到员工详细信息页:

url(r'^employee-main/(?P<employee_id>\d+)/$', employee_detail, name='employee_detail')

既然我是那个雇员,我就有了一个ul和li元素,以及那个雇员的具体支付日期。有效付款日期将是最新日期。我想单击其中一个链接再次打开同一页,但所选链接处于活动状态:

<ul>
    {% for payslip in payslips %}
    {% if payslip.date = active_payslip.date %}
    <li><b>{{ payslip.date|date:"Y-m-d" }}</b></li>
    {% else %}
    <li><a href="{% url 'personnel:employee_detail_specific' employee_id=payslip.employee_id year=payslip.date|date:'Y' month=payslip.date|date:'m' day=payslip.date|date:'d' %}">{{ payslip.date|date:"Y-m-d" }}</a></li>

应传递到以下url:

url(r'^employee-main/(?P<employee_id>\d+)/(?P<year>\w+)/(?P<month>\w+)/(?P<day>\w+)/$', employee_detail, name='employee_detail_specific')

它应该传递到与以前不同的url,但是相同的视图和html模板。单击工资单链接时收到的url如下:

employee-main/14/%7B%%20url%20'personnel:employee_detail_specific'%20employee_id=payslip.employee_id%20year=payslip.date%7Cdate:'Y'%20month=payslip.date%7Cdate:'m'%20day=payslip.date%7Cdate:'d'%20%7D

以及404页未找到错误。我不确定这是url中的日期错误还是因为我正在尝试复合url(2个变量)?你知道吗


Tags: 模板idurldate链接html员工employee