Django 我想序列化部门名称以及它';s";id";在一个单一模型序列化程序中。我该怎么做?
我想从部门模型中序列化员工模型序列化程序中的“部门名称”(depart_name)和部门ID 在Employee序列化程序中,我想序列化“部门名称”和“部门ID”模型。我在Employee Serializer的Meta类中也提到了部门模型 模型 序列化程序 请记住在员工查询集中选择_related('dept')Django 我想序列化部门名称以及它';s";id";在一个单一模型序列化程序中。我该怎么做?,django,django-models,django-rest-framework,django-serializer,Django,Django Models,Django Rest Framework,Django Serializer,我想从部门模型中序列化员工模型序列化程序中的“部门名称”(depart_name)和部门ID 在Employee序列化程序中,我想序列化“部门名称”和“部门ID”模型。我在Employee Serializer的Meta类中也提到了部门模型 模型 序列化程序 请记住在员工查询集中选择_related('dept') class Department(models.Model): dept_name = models.CharField(max_length=10) class Emp
class Department(models.Model):
dept_name = models.CharField(max_length=10)
class Employee(models.Model):
emp_name = models.CharField(max_length=15)
email = models.EmailField(unique=True)
password = models.CharField(max_length=14)
designation = models.CharField(max_length=20)
# .._id suffix django will implement automatically
dept = models.ForeignKey(Department, on_delete=models.SET_NULL, null=True, blank=True)
class Meta:
ordering = ('id',)
def __str__(self):
return self.emp_name
class DepartmentSerializer(serializers.ModelSerializer):
class Meta:
model = Department
fields = ('id', 'dept_name')
class EmployeeSerializer(serializers.ModelSerializer):
dept = DepartmentSerializer()
class Meta:
model = Employee
fields = ('id',
'emp_name',
'email',
'password',
'designation',
'dept')
您可以在
EmployeeSerializer
中使用深度。它将返回所有部门对象的字段
=================
depth=1=>返回一个深度级别。
depth=2=>返回两个深度级别
像这样:
class DepartmentSerializer(serializers.ModelSerializer):
class Meta:
model = Department
fields = '__all__'
class EmployeeSerializer(serializers.ModelSerializer):
class Meta:
model = Employee
fields = '__all__'
depth = 1
class Department(models.Model):
dept_name = models.CharField(max_length=10)
class Employee(models.Model):
emp_name = models.CharField(max_length=15)
email = models.EmailField(unique=True)
password = models.CharField(max_length=14)
designation = models.CharField(max_length=20)
# .._id suffix django will implement automatically
dept = models.ForeignKey(Department, on_delete=models.SET_NULL, null=True, blank=True)
class Meta:
ordering = ('id',)
def __str__(self):
return self.emp_name
class DepartmentSerializer(serializers.ModelSerializer):
class Meta:
model = Department
fields = ('id', 'dept_name')
class EmployeeSerializer(serializers.ModelSerializer):
dept = DepartmentSerializer()
class Meta:
model = Employee
fields = ('id',
'emp_name',
'email',
'password',
'designation',
'dept')
class DepartmentSerializer(serializers.ModelSerializer):
class Meta:
model = Department
fields = '__all__'
class EmployeeSerializer(serializers.ModelSerializer):
class Meta:
model = Employee
fields = '__all__'
depth = 1