django - Django many 2 many through rest framework
问题描述
我正在做一个小项目,但我无法让序列化程序工作
我已经尝试过这些,但我不确定我做错了什么。我的模型是多对多的
#serializers.py
class CompanyVisitedSerializer(serializers.HyperlinkedModelSerializer):
company_id = serializers.ReadOnlyField(source="company.id")
company_address = serializers.ReadOnlyField(source="company.business_address")
company_name = serializers.ReadOnlyField(source="company.business_name")
company_address = serializers.ReadOnlyField(source="company.business_address")
checked_in = serializers.ReadOnlyField(source="user.checked_in")
checked_out = serializers.ReadOnlyField(source="user.checked_out")
class Meta:
model = CompanyUser
fields = (
"checked_in",
"checked_out",
"company_name",
"company_address",
"company_id",
)
class VisitorSerializer(serializers.ModelSerializer):
# visited = CompanySerializer(many=True)
visited = CompanyVisitedSerializer(
many=True,
)
```
但我把它拿回来空{}:
{
"address": "192 millie road",
"city": "singapore",
"phone": "2066980",
...
"visited": [
{}, //i want to populate this with { company: name_of_company, checkin, checkout}
{}
]
}
我已经阅读了这些:
解决方案
指向的模型visited
是 a Company
,而不是 a CompanyUser
。如果您想使用CompanyUser
,则关系为company_visited
,因此:
class VisitorSerializer(serializers.ModelSerializer):
visited = CompanyVisitedSerializer(
source='company_visited',
many=True
)
推荐阅读
- azerothcore - 编译时出错:`identifier not found`(代码 C3861)
- angular - 属性不存在于类型类和组件角度
- python - python pandas - 检查列中的部分字符串是否存在于其他列中
- reactjs - 单击元素时如何更改元素的背景颜色?
- react-native - 张量转JPEG:提高质量
- c# - 如何以 IBM/360 列二进制格式解码十六进制数
- gpu - 在计算着色器中的 N 个线程后退出
- c# - 如果 UseSpaStaticFiles() 应该服务于 Angular 页面,为什么还需要 UseSpa()?
- data-structures - 如何为 Bitvector 实现自定义切片
- java - 如何将活动移动到另一个活动?