【问题标题】:How to send app_name,method_name url namespaces in Django [duplicate]如何在Django中发送app_name,method_name url命名空间[重复]
【发布时间】:2019-09-08 21:28:42
【问题描述】:

我正在尝试掌握 Django URL 命名空间的窍门。但我找不到任何示例或文档。

这是我尝试过的。

foo.urls

from django.urls import path, include
from Foo.Views import FooView


app_name ="Foo"

urlpatterns = [
path('', referansView.referans_listele , name="foo"),
path('create/', olusturView.referans_olustur, name="foo_create"),
]

foo.html

<a class="btn btn-success"
   href="{% url '{{foo}}:{{foo_create}}' %}?r=Foo:  {{request.resolver_match.url_name}}">

fooview.py

from django.shortcuts import render
from Foo.models import FooModels

def foo_create(request):
    result ={"Foo":"Foo"}
    return render(request,"referanslar.html", result)

我想要的是能够浏览到 /foo/X

【问题讨论】:

  • 到处使用foo 使您的示例非常混乱。看起来你想要{% url 'Foo:foo_create' %}Foo 大写F,因为你有app_name = 'Foo')。
  • 感谢您的提问。实际上我想动态编写这段代码 ({% url 'Foo:foo_create%}') 。如何在 django 模板中使用上下文变量动态地制作 {%url {{foo}}:{{foo_create}} %}
  • 正如我所说,您的示例代码令人困惑。您在模板上下文中没有foofoo_create,只有'Foo'。也许您可以使用add 过滤器,例如{% url foo|add:':'|add:foo_create %}.
  • 我很抱歉。我在 Django Project 中编辑视图。此代码如下所示 from django.shortcuts import render from Foo.models import FooModels def foo_create(request): result ={"Foo":"Foo_appName","fooView":"fooView" } return render(request,"referanslar. html", 结果)
  • 那么你会做{% url Foo|add:':'|add:fooView %}。但是,将 {'fooView': 'Foo:fooView'}` 传递给模板并执行 {% url fooView %} 可能更简单。或者您可以使用{'foourl': reverse('Foo:fooView')} 将反向网址传递给模板,然后使用{{ foourl }}

标签: python django url


【解决方案1】:

您可以在主站点网址中包含网址,例如

path('foo/', include('foo.urls')),

【讨论】:

    猜你喜欢
    • 2019-06-14
    • 2019-02-01
    • 2010-12-27
    • 2013-11-09
    • 2015-12-16
    • 2018-07-07
    • 2018-12-03
    • 1970-01-01
    • 2019-03-16
    相关资源
    最近更新 更多