【发布时间】: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 教程,强烈推荐