我想在html页面中隐藏列bh,所以我在forms.py中通过exclude隐藏它,并尝试在视图中使用request.user.username设置外键列bh,但它给了我这个错误: 无法指定“]>”:“Bed.bh”必须是“医院”实例。
有没有办法解决这个问题。请帮忙!
`#forms.py
class BedForm(forms.ModelForm):
class Meta:
model=Bed
fields = ('bed_id','bed_type','created_date','bh',)
exclude=('bh',)
if request.method == "POST":
form = BedForm(request.POST)
if form.is_valid():
bed = form.save(commit=False)
bed.created_date = timezone.now()
hh = Hospital.objects.filter(hospital_id=request.user.username)
bed.bh=hh
bed.save()
b = Bed.objects.filter(bh=request.user.username)
`
答案 0 :(得分:0)
这是因为Hospital.objects.filter()
正在返回QuerySet
,而不是Hospital
的实例。
你想要这样的东西:
hh = Hospital.objects.filter(hospital_id=request.user.username)[0]
或
hh = Hospital.objects.get(hospital_id=request.user.username)
在这两种情况下,您都必须在检索对象之前检查对象是否存在,或者捕获异常,然后确定下一步该做什么。