我想创建一个员工对象,其属性包括预先存在的外键(部门)。当我看到员工 api 时..我得到部门 ID 而不是部门名称.. ..请帮忙
模型.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
序列化.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__'
最佳答案
您可以使用StringRelatedField()
对于同样的。
class EmployeeSerializer(serializers.ModelSerializer):
""" Serializer to represent the Chain model """
<b>department = serializers.StringRelatedField()</b>
class Meta:
model = Employee
fields = '__all__'
StringRelatedField
may be used to represent the target of the relationship using its__unicode__
or__str__
method.
如果您希望查看与该 FK 相关的所有详细信息,请使用 depth
如下
class EmployeeSerializer(serializers.ModelSerializer):
""" Serializer to represent the Chain model """
class Meta:
model = Employee
fields = '__all__'
<b>depth = 1</b>
关于python - Django REST FRAMEWORK 中的外键关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51238469/