【问题标题】:How do I implement action={% url '......' %} in django-form我如何在 django-form 中实现 action={% url \'......\' %}
【发布时间】:2023-02-16 04:48:49
【问题描述】:

我想知道在 django 形式中使用 <form action={% url '......' %}> 的等价物(即使用 forms.ModelForm 类)。

如何在 django-form 中定义表单的操作 url?它可以在 HTML 中使用表单的 action 属性轻松完成 action={% url....

【问题讨论】:

  • 你能详细说明你的问题吗?你需要做什么?
  • 我需要在 django-form 中定义一个表单的动作 url。在 HTML 格式中,可以使用:action={% url '......' %} 来完成。

标签: django django-forms


【解决方案1】:

当您在<form> 中单击<button type='submit'> Submit </button> 时,views.py 中的表单操作将运行。如果这不是你想要的:

这就是你如何从 html 触发视图函数:

视图.py

def YourAction(request, arg):
    # do something
    return redirect('/anywhere') # you need to return something

网址.py

from .views import YourAction
urlpatterns = [
   path('dosomething/<arg>', YourAction, name='action_name'),
]

你的 html

<form action='{% url 'action_name' arg %}'>
   <button type='submit'> Submit! </button>
</form>

您不必使用表格。你可以只使用&lt;a href='{% url 'action_name' arg %}'&gt; Do Something! &lt;/a&gt;

【讨论】:

    【解决方案2】:

    您也可以在视图 (views.py) 中更改它:

    from django.urls import reverse
    from .models import YOUR_FORM_MODEL
    
    def myView(request):
      if request. Method == 'GET':
            form = YOUR_FORM_MODEL()
            form.helper.form_action = reverse('appname:testme')
            mydata = {'form': form}
            return HttpResponse(render(request, 'appname/custom_page.html', context=mydata))
    

    并添加你的 urls.py:

    from django.urls import path
    from . import views
    
    app_name = 'appname'
    urlpatterns = [
        path('test-my-custom-form-send-patn', views.myView, name='testme'),
    ]
    

    【讨论】:

      猜你喜欢
      • 2015-08-02
      • 1970-01-01
      • 2013-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多