将POST请求从HTML表单获取到Django数据库

时间:2019-02-12 21:00:42

标签: python html django

我正在寻求实现一种简单的HTML表单,该表单将一堆数据传递到Django后端,然后将其存储并显示在另一页上。不幸的是,我似乎无法将后端和前端连接在一起。我是Django的新手,这确实让我感到悲伤 使用的HTML:

<form action="{% url 'jobs:send' job_id%}" method="POST">
{% csrf_token %}
<label>Job ID</label>
<input type="number" id="job_id">
<br>
<label>Store</label>
<select>
    {% for store1, store2 in STORE_CHOICES %}
        <option value="{{ store1 }}">{{ store2 }}</option>
    {% endfor %}
</select>
<br>
<label>Department</label>
<select>
    {% for dept1, dept2 in DEPARTMENT_CHOICES %}
        <option value="{{ dept1 }}">{{ dept2 }}</option>
    {% endfor %}
</select>
<br>
<label>Team Member</label>
<input type="text" id="team_member">
<br>
<label>Support Member</label>
<select>
    {% for supp1, supp2 in SUPPORT_CHOICES %}
        <option value="{{ supp1 }}">{{ supp2 }}</option>
    {% endfor %}
</select>
<br>
<label>Job Details</label>
<textarea type="text" id="job_details" rows="4"></textarea>
<br>
<label>Job Status</label>
<select>
    {% for status1, status2 in STATUS_CHOICES %}
        <option value="{{ status1 }}">{{ status2 }}</option>
    {% endfor %}
</select>
<br>
<label>Feedback Given</label>
<textarea type="text" id="feedback_given" rows="4"></textarea>
<br>



<input type="submit" value="Send">

下面是我的views.py文件。我的印象是这是我的问题所在,但我似乎无法正确地在HTML和函数之间传递信息,甚至根本无法传递。我

def send(request, job_id):
list = get_object_or_404(Job, pk=job_id)

if request.method == 'POST':
    #Do things

return HttpResponseRedirect(reverse('jobs:create', args=(job_id,)))

def create(request,):
context = {
    'STATUS_CHOICES': Job.STATUS_CHOICES,
    'DEPARTMENT_CHOICES': Job.DEPARTMENT_CHOICES,
    'STORE_CHOICES': Job.STORE_CHOICES,
    'SUPPORT_CHOICES': Job.SUPPORT_CHOICES,
}
return render(request, 'jobs/create.html', context)

我的“ urls.py”文件如下

app_name = 'jobs'
urlpatterns = [
    # ex: /jobs/
    path('', views.index, name='index'),
    # ex: /jobs/create/
    path('create/', views.create, name='create'),
    # ex: /jobs/added/
    path('added/', views.added, name='added'),
    # ex: /jobs/5/
    path('<int:job_id>/', views.detail, name='detail'),
    # send POST data
    path('send/<int:job_id>', views.send, name='send'),
]

任何人都可以确定我的问题的出处吗?我一直在搜寻教程,以尝试更好地理解系统之间相互传递数据的方式,但是我似乎无法弄清楚。 干杯!

1 个答案:

答案 0 :(得分:-1)

我自己使用第15个左右的教程中的示例代码来解决它。事实证明,我对响应的工作方式并不完全了解。现在就请客吧!