【问题标题】:A create view in another view django在另一个视图django中创建视图
【发布时间】:2020-05-12 18:11:57
【问题描述】:

我是 django 的新手。我创建了一个基本的帖子应用程序,用户可以在其中发布消息。该项目具有用于发布消息的帖子应用程序。该应用程序有两个模型 - 帖子和评论,其中一个帖子可以有多个 cmets。我的帖子显示在列表视图中,其中包含特定帖子的 cmets。

现在,我想为每个帖子添加一个“添加评论”按钮,这样我就可以直接添加评论(堆栈交换设计!)。这可以通过 cmets 模型的单独 createview 来实现。我希望 listview 本身上有一个 textarea 来输入帖子的 cmets。

我该怎么做?

【问题讨论】:

  • 只需向页面传递一个表单,然后让请求重定向到CreateView
  • 谢谢,但你能帮我看看怎么做吗?
  • 刚接触 django,我不知道该怎么做。请帮助我

标签: django django-views


【解决方案1】:

在最基本的形式中,您可以为所需的视图(CreateCommentPostDetails)定义不同的路由,并从PostDetails 路由向CreateComment 视图发送POST 请求。

urls.py

urlpatterns = [
    path('post/<pk>/', post_details, name='post-details'),
    path('comment/new/', add_comment, name='create-comment'),
]

并在您的post/&lt;pk&gt;/ 路由中,设置如下表格:

<form method="POST" action="/comment/new/">
    <input value="" name="description" type="text" />
    <input value="/current/path/" name="redirect" type="hidden" />
    {% csrf_token %}
</form>

然后,您可以使用表单从原始路由传递的 redirect 值将用户重定向到他首先发出请求的页面。

【讨论】:

    猜你喜欢
    • 2010-12-21
    • 1970-01-01
    • 2018-04-02
    • 2022-01-16
    • 1970-01-01
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多