使用指向同一视图的多个 urls,无法从视图中的 url 捕获变量
Using multiples urls pointing to the same view, can't catch the variable from the url in the view
我正在使用多个 url 指向同一个视图,因为有时我会向 url 发送 2 个值,而另一个只发送一个,当我尝试时,问题出在视图中为了捕获值,我不关心 url 中变量的名称,我在 url 中使用 seguros 和 fac 作为变量,但是当捕获视图中的值时,它总是捕获它在同一个变量事实中,我需要在不同的变量中捕获它们,因为在我发送它们的模板中我需要做一个 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
URL 解析器应该如何区分您的 URL?它们都是"crearseguimientoadministrativo/numbers/string"的形式;无法分辨哪个字符串代表 "fac",哪个字符串代表 "seguros"。您需要添加一些其他区分方式;也许 .../<id>/fac/<fac>/
和 .../<id>/seguros/<seguros>/
.
我正在使用多个 url 指向同一个视图,因为有时我会向 url 发送 2 个值,而另一个只发送一个,当我尝试时,问题出在视图中为了捕获值,我不关心 url 中变量的名称,我在 url 中使用 seguros 和 fac 作为变量,但是当捕获视图中的值时,它总是捕获它在同一个变量事实中,我需要在不同的变量中捕获它们,因为在我发送它们的模板中我需要做一个 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
URL 解析器应该如何区分您的 URL?它们都是"crearseguimientoadministrativo/numbers/string"的形式;无法分辨哪个字符串代表 "fac",哪个字符串代表 "seguros"。您需要添加一些其他区分方式;也许 .../<id>/fac/<fac>/
和 .../<id>/seguros/<seguros>/
.