django - 如何将简单的序列化器容纳到模型序列化器中或在 Django rest API 视图中组合 2 个单独的应用程序(模型序列化器)
问题描述
我正在为我的-rest API 使用 Django 和 Django rest 框架(最新版本Department
)Employee
。
在我的项目中创建了 2 个应用程序
DepartmentApp
- 有 Model : Department
( Id
, Department name
, Location
) , Department
-->ModelSerializer
最后DepartmentApi
使用 Class API (views.py)
EmployeeApp
- 有 Model : Employee
( Id
, Employee name
, Job title
, Salary
, Department ID
) , Employee
-->ModelSerializer
最后EmployeeApi
使用 Class API (views.py)
现在在EmployeeApp
--> views.py 下,我在def get
方法下调用(DepartmentApi using url)。它的目的是获取给定员工对象的部门名称和位置-->部门ID,并将这些属性用作employeeSerializer
响应的一部分。我不知道如何实现这一点。我如何将我的响应DepartmentApi
用于我的员工序列化器,它是一个Empployee
模型。下面是views.py的代码片段EmpployeeApp
def get(self, request, EmployeeId = None):
if EmployeeId:
employee=Employees.objects.get(EmployeeId=EmployeeId)
print (employee.Department) # This prints DepartmentID from employee Model
e_response = requests.get('http://127.0.0.1:8000/department/1') # calling DepartmentAPI
deptData = e_response.json()
print (f"{deptData['DepartmentName']} and {deptData['Location']}")
employees_serializer = EmployeeDeptSerializer(employee)
return Response(employees_serializer.data)
else
employees = Employees.objects.all()
employees_serializer = EmployeeSerializer(employees, many=True)
return Response(employees_serializer.data)
上面的代码将只包含Employee
object 。但我的要求是Department
在调用 EmployeeApi 时在我的响应中添加名称和位置(对于给定的员工 ID 或所有对象)。
我是 Python 和 Django 的新手。
解决方案
推荐阅读
- python - 根据索引值在python中加入2个csv文件
- python-2.7 - SSL 连接错误:SSL 证书验证失败 (2026) (SQLDriverConnect) pyodbc?
- scala - 如何使用@RunWith(classOf[JUnitRunner]) 升级到 JUnit5 进行 Scala 测试?
- python - ttest_ind 给出 TypeError: unsupported operand type(s) for /: 'str' and 'int'
- javascript - React Consumer Context 无法设置状态 - 前端大师介绍 React 课程 v4 重构
- maven - Swagger CodeGen 依赖问题
- sorting - 如何仅根据第一列对行进行排序?
- android - 如何在另一个活动中更新片段和背景
- bash - 我如何解释这个 bash/awk 语法?
- java - 如何用方法引用替换“!= null”语句?