我搜索了一些相关问题,但我不知道该怎么做。这就是为什么我在这里发布一个新问题。
我有一个基本的html文件,并且有一个应该从view.py文件运行功能的按钮。这是按钮代码;
<form role="form" action="" method="POST">
{% csrf_token %}
<input type="submit" class="btn" value="Click" name="mybtn">
</form>
这是我在view.py文件中的功能;
def create_new_product(request):
if request.method == 'POST':
'''Execute the code here'''
return render (request, 'products/base.html')
在我的产品的urls.py文件中;
app_name = 'products'
urlpatterns = [
path('create-new-product/', views.create_new_product),
path('', views.IndexView.as_view(), name='base'),
path('<int:pk>/', views.DetailView.as_view(), name='detail'),
]
通常,我在view.py文件中有一个IndexView类,该类列出了所有当前产品,并且我希望通过上述功能可以生成新产品,并且新产品也将在“产品”页面中列出。
顺便说一句,上面的函数不在IndexView类中。
答案 0 :(得分:0)
您将与action="#"
停留在同一页面上
请改用action=""
,这样您将停留在同一页面上但已重新加载。
更新:
阅读您的评论。
name参数可用于在Django模板中调用您的网址,例如:
path('create-new-product/', views.create_new_product, name='create_new_product')
app_name ='products'非常重要。它告诉Django在哪里检查您的路径。因此,您可以通过以下方式在项目的任何位置调用视图:
<a href="{% url 'products:create_new_product' %}">...</a>
<form action="{% url 'products:create_new_product' %}">...</form>