【问题标题】:How can i switch from one app to another in Django while passing data?如何在传递数据时在 Django 中从一个应用程序切换到另一个应用程序?
【发布时间】:2020-01-28 17:41:44
【问题描述】:

我正在编写一个 Django 应用程序,但我在我的一个 Django 应用程序中遇到了 html 中的这行代码:

<a href="{% url "order:order_page" request.cart %} "> ORDER </a>

我希望在传递来自“购物车”的数据时,将“订单”一词重定向到另一个应用程序中的 html 页面。我怎样才能做到这一点? (order 是第二个应用程序,'order_page' 是其视图中呈现第二个 html 页面的名称,'cart' 是我想传递给它的数据,因为我想显示它)

【问题讨论】:

  • 你的问题不清楚。应用程序不是您网站中的任何一种划分,它们只是模型和视图的逻辑分组。
  • @DanielRoseman 究竟是什么不清楚,所以我可以更好地解释
  • 不清楚的是为什么您认为从一个应用程序转移到另一个应用程序是一个问题。这与在同一个应用程序中的两个 URL 之间切换没有任何不同。
  • @DanielRoseman 我并不是说这是个问题,但如果我还有数据要从第一个应用程序传输到另一个应用程序,我不知道该怎么做。
  • 正如 Daniel 指出的那样,这与从同一个应用程序中转到另一个 url/view 没有什么不同。

标签: django view render cart


【解决方案1】:

假设另一个应用的名称是order

那么你的order.urls.py 应该有:

from order import views
...
app_name = 'order'
...
urlpatterns = [
    ...
    path('order_page/<int:cart>/', views.OrderPage.as_view(), name='order_page'),    # OrderPage is a class based view
]

您可以使用以下方法在模板中指向此网址:

<a href="{% url 'order:order_page' request.cart.id %}"> ORDER </a>
  • order:order_page:在名为order的应用中名为order_page的url。
  • request.cart.id:传递给url的参数。
  • 阅读Django's official documentation了解更多详情。

【讨论】:

  • 这是我问的,而不是你。您能否解释一下 int:cart 的作用以及“int”的来源?非常感谢
  • 我已经添加了更多解释。请检查!
  • 不幸的是,我的项目仍然无法运行。错误是:未找到带有参数“(”,)“的“order_page”的反向。尝试了 1 种模式:['order\\/order_page\\/(?P[0-9]+)\\/$']
  • 尝试在 url 中使用 "//" 或 "/(?P\d+)/" 而不是 "/(?P[0-9 ]+)/".
猜你喜欢
  • 1970-01-01
  • 2014-05-07
  • 1970-01-01
  • 1970-01-01
  • 2013-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多