<p>解决此类问题的基本工作流可以是一个Ajax调用,用于将更改发布到Django服务器;一个Django视图,用于接收和实现模型中的更改,并响应Ajax调用,Ajax调用根据所做的任何更新更新HTML。你知道吗</p>
<p>一个简单的例子:</p>
<p><strong>Javascript:</strong></p>
<p>您需要一个Ajax方法,当您单击add/remove按钮并将药品的ID发布到Django视图时触发该方法,您可以在该视图中将其设置为available/unavailable。你知道吗</p>
<pre><code>$('.addButton').on('click', function(event){
$.ajax({
url : '/add/medicine/url/',
type : 'POST',
data : {'medicine_id': id, csrfmiddlewaretoken: 'your csrftoken' },
success: function(json) {
// Successful response, so you can update the medicine list HTML using JQuery here.
},
});
});
</code></pre>
<p><strong>视图.py</strong></p>
<pre><code>from django.http import JsonResponse
def add_medicine(request):
if request.method == 'POST':
medicine_id = int(request.POST.get('medicine_id'))
medicine = Medicine.objects.get(id=medicine_id)
medicine.available = True
medicine.save()
return JsonResponse({'medicine_id': medicine_id}, status=200)
</code></pre>
<p>这是一个例子来说明工作流程,命名不匹配您的代码。另外,我认为应该在医学模型本身中指定药物可用性,而不是在两个单独的模型中,或者至少在两个模型之间有一些back-ref关系,这样就可以通过另一个模型访问其中一个,反之亦然。你知道吗</p>