【发布时间】:2019-12-18 02:25:32
【问题描述】:
我最近开始学习 Django,并尝试根据从下拉列表中选择的值构建一个简单的编辑表单。此下拉列表由学生模型的后端数据库列“student_first_name”填充。 When a particular student_first_name is selected and submitted, an edit form with all the details of the student should be generated in the same template for editing purpose.在那,只有 student_id 字段应该是只读的。我能够生成下拉列表并在 selected_item 变量中获取“student_id”值。但我无法理解如何使用它来生成编辑表单。还有其他更好的方法来实现这一点吗?这是我的代码初稿,如果有任何建议,我们将不胜感激。
models.py
class Students(models.Model):
student_id = models.IntegerField(primary_key=True)
student_first_name = models.CharField(max_length=100, null=True)
student_last_name = models.CharField(max_length=100, null=True)
student_address = models.CharField(max_length=255, null=True)
student_dob = models.DateTimeField(null=True)
student_doa = models.DateTimeField(null=True)
views.py
def student_edit(request):
details = Students.objects.all()
form = request.POST
if request.method == 'POST':
selected_item = get_object_or_404(Students, pk=request.POST.get('student_id')).student_id
return render(request, 'student_edit.html', {'details': details})
student_edit.html
<form method="POST" novalidate>
{% csrf_token %}
<select name="student_id" class="form-control">
<option value="">Select Student Name</option>
{% for detail in details %}
<option value="{{ detail.student_id }}">{{ detail.student_first_name }}</option>
{% endfor %}
</select>
<button type="submit" class="btn btn-success">Select</button>
</form>
【问题讨论】:
标签: django django-forms