queryset=staff_info.emergency_list.all()显示'StaffInfo' object has no attribute 'emergency_list',那我要如何获得StaffInfo中对应的所有Emergency呢
时间: 2023-12-16 20:03:26 浏览: 79
如果报错显示 'StaffInfo' object has no attribute 'emergency_list',那么说明在 `StaffInfo` 模型中没有名为 `emergency_list` 的字段或者属性。因此,你需要确定在 `StaffInfo` 模型中与 `Emergency` 模型相关联的字段名。如果你在 `StaffInfo` 模型中使用了外键或者多对多关系来关联 `Emergency` 模型,那么你可以通过这个字段名获取到相应的 `Emergency` 对象。
以外键关联为例,假设在 `StaffInfo` 模型中定义了一个名为 `emergency` 的外键字段,那么获取对应的所有 `Emergency` 对象的代码可以写成:
```python
queryset = staff_info.emergency_set.all()
```
其中,`emergency_set` 是 Django 自动生成的反向关联名。如果你在定义外键字段时使用了 `related_name` 参数指定了反向关联名,那么可以使用指定的反向关联名来获取相应的 `Emergency` 对象。
如果你的模型中使用了其他的字段名称或者关系类型,需要相应地进行修改。
相关问题
queryset=staff_info.emergency_list.all()显示'StaffInfo' object has no attribute 'emergency',那我要如何获得StaffInfo中对应的所有Emergency呢
根据报错信息 'StaffInfo' object has no attribute 'emergency',可以看出在 `StaffInfo` 模型中没有名为 `emergency` 的字段或者属性。因此,你需要找到 `StaffInfo` 模型中与 `Emergency` 模型相关联的字段,假设这个字段名为 `emergency_list`,那么你可以使用以下方式获取 `StaffInfo` 对象对应的所有 `Emergency`:
```python
queryset = staff_info.emergency_list.all()
```
其中,`emergency_list` 是你在 `StaffInfo` 模型中定义的与 `Emergency` 模型相关联的字段名称。如果你的模型中使用了其他的字段名称,需要相应地进行修改。
def staff_detail(request, nid): """ 员工个人详情页面 """ staff_info = models.StaffInfo.objects.filter(RES_ID=nid).first() # emergency_info = models.Emergency.objects.filter(res_id=nid).first() EmergencyFormset = forms.modelformset_factory(model=Emergency, form=EmergencyStaticModelForm, extra=0) EmergencyFormset = EmergencyFormset(queryset=staff_info.emergency_list.all()) StaffForm = StaffStaticModelForm(instance=staff_info) # EmergencyForm = EmergencyStaticModelForm(instance=emergency_info) return render(request, "staff_detail.html", {"StaffForm": StaffForm, "EmergencyFormset": EmergencyFormset})有什么问题
这段代码展示了一个员工信息详情页面的视图函数,但是其中的 EmergencyFormset 变量似乎没有必要定义两次。第一次定义是将 EmergencyFormset 设置为一个 modelformset_factory 对象,第二次定义又将其重新赋值为一个 queryset,这样会覆盖掉第一次的定义。建议只使用一次定义即可,将 EmergencyFormset 直接赋值为一个 queryset 或者 modelformset_factory 对象。
阅读全文