【问题标题】:Getting POST request from an HTML form into a Django database从 HTML 表单获取 POST 请求到 Django 数据库
【发布时间】:2019-02-12 21:00:42
【问题描述】:

我希望实现一个简单的 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'),
]

谁能确定我的问题的根源?我一直在搜索教程,试图更好地理解系统在它们之间传递数据的方式,但我似乎无法弄清楚。 干杯!

【问题讨论】:

  • 欢迎使用 Python。我建议你阅读 PEP8,它会帮助你的 Python 风格指南。所有大写字母都保留给常量。格式化在 Python 中也非常重要,您的代码原样会导致语法错误。
  • @diek 您好,我设法找到了如下解决方案。我不一定是 python 的新手,但绝对是 Django 的新手,所以可能错过了一些我认为相关的复制和粘贴代码的点点滴滴。无论如何感谢您的回复,很高兴将其排序!
  • 查看 Mozilla Django 教程,强烈推荐

标签: python html django


【解决方案1】:

使用我查找的第 15 个左右教程中的示例代码自己解决了这个问题。事实证明,我对响应的工作方式不太了解。现在开始工作了!

【讨论】:

    猜你喜欢
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    • 2016-08-01
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多