django - Django中不存在ipd匹配查询
问题描述
我正在尝试使用 QS 从 ForeignKey 获取对象,但我似乎找不到问题
视图.py:
@login_required
def ipd (request,patient_id):
formtwo = IpdForm()
qs = Ipd.objects.get(patient=patient_id)
if request.method=="POST":
formtwo = IpdForm(request.POST)
if formtwo.is_valid() :
instance = formtwo.save(commit=False)
instance.save
else:
return HttpResponse(formtwo.errors)
else:
formtwo = IpdForm()
return render(request, 'newipd.html', {'a':qs,'form2':formtwo})
html:
<div class="card-panel">
<span class="blue-text text-darken-2">Name : {{a.name}}</span> <br>
<span class="blue-text text-darken-2">Phone : {{ a.phone }}</span><br>
<span class="blue-text text-darken-2">Address : {{ a.address }}</span>
<br>
<span class="blue-text text-darken-2">Gender : {{ a.Gender }}</span><br>
</div>
网址.py
from django.conf.urls import url
from django.contrib import admin
from orders import views as my_order
from django.contrib.auth import views as auth
from django.contrib.auth.decorators import login_required
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$', my_order.index, name='home'),
url(r'^orders$', my_order.index, name='home'),
url(r'^order/(?P<patient_id>\d+)/$', my_order.show, name='show'),
url(r'^order/new/$', my_order.new, name='new'),
url(r'^order/ipd/(?P<patient_id>\d+)/$', my_order.ipd, name='ipd'),
url(r'^order/edit/(?P<patient_id>\d+)/$', my_order.edit, name='edit'),
url(r'^order/delete/(?P<patient_id>\d+)/$', my_order.destroy,
name='delete'),
url(r'^ipdlist$', my_order.ipd_list, name='ipd_list'),
url(r'^users/login/$', auth.LoginView.as_view, {'template_name':
'login.html'}, name='login'),
url(r'^users/logout/$', auth.LogoutView.as_view, {'next_page': '/'},
name='logout'),
url(r'^users/change_password/$', login_required(auth.PasswordResetForm),
{'post_change_redirect' : '/','template_name': 'change_password.html'},
name='change_password'),
]
我找不到我的代码有什么错误,我是 Django 新手,需要帮助才能找到我的答案!
解决方案
要查询foreign key
患者字段,您需要使用patient__Patient_id=patient_id
而不是patient=patient_id
.
而且你应该使用filter()
而不是因为get()
一对多的关系,因此 1 名患者可以有超过 1 个 Ipd。
qs = Ipd.objects.filter(patient__Patient_id=patient_id)
推荐阅读
- json - 无法从 F1 url 解析 JSON 数据
- gcc - 为 arm64 生成代码时,为什么 gcc + clang 使用 adrp+add 而不是 adr 来寻址附近的变量?
- c# - 给定上下文中的条件空运算符无效类型
- python - 从不在列表中的每行数据框中的列中删除字符串
- python - 有没有更有效的方法来对应来自不同表的值?
- python - Python在创建文件时忽略文件类型
- r - r igraph 查找所有循环
- javascript - 创建带架子的地板的图表/地图/平面图的最佳方法?
- typescript - VSCode 创建 TypeScript 扩展以注入全局定义
- node.js - axios 重复发布请求