python - Django REST FRAMEWORK 中的外键关系

标签 python django django-rest-framework

我想创建一个员工对象,其属性包括预先存在的外键(部门)。当我看到员工 api 时..我得到部门 ID 而不是部门名称.. enter image description here ..请帮忙

模型.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/

相关文章:

python - 当列名是整数时,按列号索引 pandas DataFrame

python - 如何求解投资组合优化的方程组和约束条件?

python - 遍历 Django 模板中的两个列表

python - Django 删除 UpdateView 中的内联表单集记录

django - 在序列化器方法字段中返回嵌套序列化器

Python Django Rest 框架 UnorderedObjectListWarning

python - 导入两个同名包

python - 在 Python 中格式化 json.dump 来自字典的 float

python - 如何从现有数据制造 Django ORM QueySet/从纯 SQL 返回 ORM 查询?

python - 在 Django Rest Framework 中获取特定对象