如何在Django窗体中隐藏列并设置外键值

2024-09-23 14:25:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在html页面中隐藏bh列,所以我通过exclude in来隐藏它表单.py并尝试用request.user.username用户名但它给了我这个错误: 无法分配“]>;”:床.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)

`


Tags: pyformiddaterequestusernameformsexclude
1条回答
网友
1楼 · 发布于 2024-09-23 14:25:29

这是因为Hospital.objects.filter()返回的是QuerySet,而不是Hospital的实例。你知道吗

你想要的是:

hh = Hospital.objects.filter(hospital_id=request.user.username)[0]

或者

hh = Hospital.objects.get(hospital_id=request.user.username)

但是,在这两种情况下,您要么在检索对象之前检查对象是否存在,要么捕获异常,然后确定下一步要做什么。你知道吗

相关问题 更多 >