我想创建一个员工对象,其属性包括预先存在的外键(部门)。当我看到员工api时。我正在获取部门ID而不是部门名称。 ..请帮助
models.py
class Department(models.Model):
name = models.CharField(max_length= 20)
def __str__(self):
return self.name
class Employee(models.Model):
employee_name = models.CharField(max_length= 20)
surname = models.CharField(max_length= 20)
address = models.CharField(max_length = 50)
qualification = models.CharField(max_length = 30)
contact_num = PhoneNumberField()
department = models.ForeignKey(Department, on_delete=models.PROTECT)
def __str__(self):
return self.employee_name
serialize.py
class DepartmentSerializer(serializers.ModelSerializer):
""" Serializer to represent the Chain model """
class Meta:
model = Department
fields = '__all__'
class EmployeeSerializer(serializers.ModelSerializer):
""" Serializer to represent the Chain model """
class Meta:
model = Employee
fields = '__all__'
答案 0 :(得分:1)
您可以使用StringRelatedField()
。
class EmployeeSerializer(serializers.ModelSerializer):
""" Serializer to represent the Chain model """
department = serializers.StringRelatedField()
class Meta:
model = Employee
fields = '__all__'
StringRelatedField
可以用来表示关系的目标,使用其__unicode__
或__str__
方法。
如果您希望查看与该FK相关的所有详细信息,请使用depth
,如下所示
class EmployeeSerializer(serializers.ModelSerializer):
""" Serializer to represent the Chain model """
class Meta:
model = Employee
fields = '__all__'
depth = 1