使用指向同一视图的多个url,无法从视图中的url捕获变量

时间:2015-11-05 19:08:18

标签: python django url formview

我正在使用指向同一个视图的多个网址,因为有时我会向网址发送2个值而其他只有一个,当我尝试捕获值时,问题出现在视图中我的名字并不重要关于url中的变量,我在url中使用seguros和fac作为变量,但是当捕获视图中的值时,它总是在相同的变量事实中捕获它,我需要在diferente变量中捕获它们,因为在我发送它们的模板我需要做一个if,但我不能。有人可以告诉我为什么会发生这种情况,我能做些什么,所以seguro的价值在变量seguro中捕获它,而fac的值在fac中捕获它。这是我的代码。

Template.html

{% if facturas %}
    <a style="text-align: center" href="{% url 'seguimientoadministrativourls:crearseguimientoadministrativo' id=post.id_paciente.pk fac=facturas %}"><span class="glyphicon glyphicon-pushpin"></span> </a>
{% elif seguros %}
    <a style="text-align: center" href="{% url 'seguimientoadministrativourls:crearseguimientoadministrativo' id=post.id_paciente.pk seguros=seguros %}"><span class="glyphicon glyphicon-pushpin"></span>
</a>
{% else %}
    <a style="text-align: center" href="{% url 'seguimientoadministrativourls:crearseguimientoadministrativo' id=post.id_paciente.pk %}"><span class="glyphicon glyphicon-pushpin"></span>
</a>
{%endif%}

urls.py

url(r'^crearseguimientoadministrativo/(?P<id>\d+)$',
    permission_required(
        'seguimientoadministrativo.add_seguimientoadministrativobitacora',
        login_url='/sin_acceso')(CrearSeguimientoAdministrativo.as_view()),
    name='crearseguimientoadministrativo'),

url(r'^crearseguimientoadministrativo/(?P<id>\d+)/(?P<fac>\S+)$',
    permission_required(
        'seguimientoadministrativo.add_seguimientoadministrativobitacora',
        login_url='/sin_acceso')(CrearSeguimientoAdministrativo.as_view()),
    name='crearseguimientoadministrativo'),

url(r'^crearseguimientoadministrativo/(?P<id>\d+)/(?P<seguros>\S+)$',
    permission_required(
        'seguimientoadministrativo.add_seguimientoadministrativobitacora',
        login_url='/sin_acceso')(CrearSeguimientoAdministrativo.as_view()),
    name='crearseguimientoadministrativo'),

views.py

class CrearSeguimientoAdministrativo(ListView):
    template_name = 'crearseguimientoAdmin.html'
    model = SeguimientoAdministrativoBitacora
    paginate_by = 10

    def get_queryset(self, **kwargs):
        id = self.kwargs.get('id')
        query = DatosPaciente.objects.filter(pk=id)
        return query

    def get_context_data(self, **kwargs):
       context = super(
           CrearSeguimientoAdministrativo, self).get_context_data(**kwargs)
      context['seguimiento'] = SeguimientoAdministrativoBitacora.objects.filter(
        id_paciente=paciente)
      context['factura'] = self.kwargs.get('fac')
      context['seguro'] = self.kwargs.get('seguros')
      return context

1 个答案:

答案 0 :(得分:1)

网址解析器如何区分您的网址?它们都是&#34; crearseguimientoadministrativo / numbers / string&#34 ;;没有办法告诉哪个字符串代表&#34; fac&#34;这是一个&#34; seguros&#34;。你需要添加一些其他的区分方式;也许是.../<id>/fac/<fac>/.../<id>/seguros/<seguros>/