gpt4 book ai didi

python - 在 Django 的 POST 数据中将值与表单一起传递

转载 作者:行者123 更新时间:2023-11-28 22:19:46 25 4
gpt4 key购买 nike

当我在 HTML 中呈现表单时,我使用这个 View 。 patient_id 用于表示 checkin 的患者以及名称显示等。

def Checkin(request, patient_id):
patient = get_object_or_404(PatientInfo, pk=patient_id)
form = forms.PatientCheckinForm()
return render(request, 'patientRecords/checkin.html', {'patient': patient, 'form':form})

当我提交以 POST 方法填写的患者表格时,我仍然需要访问 patient_id。目前这是接受填写表格的 View :

def CheckinSubmit(request):
if request.method == 'POST':
form = forms.PatientCheckinForm(request.POST, request.FILES)
if form.is_valid():
instance = form.save(commit=False)
instance.date_time_of_checkin = dt.now()
instance.patient = patient.patient_id
instance.save()
return redirect('patientRecords/index.html')

我想将 instance.patient 设置为 patient_id,它是 Checkin View 中 patient 的一部分。有没有一种方法可以将患者数据与 POST 方法一起传回,或者是否有其他方法可以做到这一点?

作为引用,这是我的模板,我使用的是 ModelForm 而不是表单。

{% block content %}

<div class="container">
<h1>Patient Checkin</h1>
<h2>{{patient.first_name}} {{patient.last_name}}</h2>
</div>
<div class="container">
<form action="{% url 'patientRecords:checkinsubmit' %}" method="POST" class="form">
{% csrf_token %}
{% bootstrap_form form %}
{% buttons %}
<button type="submit" class="btn btn-primary">Submit</button>
{% endbuttons %}
</form>
</div>

{% endblock %}

提前致谢!

最佳答案

您应该能够简单地向您的表单添加隐藏输入以捕获患者 ID:

{% block content %}

<div class="container">
<h1>Patient Checkin</h1>
<h2>{{patient.first_name}} {{patient.last_name}}</h2>
</div>
<div class="container">
<form action="{% url 'patientRecords:checkinsubmit' %}" method="POST" class="form">
<input type="hidden" name="patient_id" value="{{patient.patient_id}}" />
{% csrf_token %}
{% bootstrap_form form %}
{% buttons %}
<button type="submit" class="btn btn-primary">Submit</button>
{% endbuttons %}
</form>
</div>

{% endblock %}

(请注意,这假定可以从 patient 对象的 patient_id 属性访问患者 ID。)

然后,在您的 CheckinSubmit 方法中,您可以通过 request.POST.get('patient_id') 访问此值

或者,您的登记表似乎加载了 URL 中的患者 ID。在您的 CheckinSubmit 方法中,您应该能够通过 request.META.HTTP_REFERER 属性访问此 URL。然后您可以解析 URL(例如,使用 request.META.HTTP_REFERER.split('/')[len(request.META.HTTP_REFERER.split('/')) - 1] 来拉取出患者 ID。

关于python - 在 Django 的 POST 数据中将值与表单一起传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49482742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com