猿问

Django REST FRAMEWORK中的外键关系

我想创建一个雇员对象,其属性包括预先存在的外键(部门)。当我看到雇员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

序列化


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__'


幕布斯7119047
浏览 267回答 1
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
随时随地看视频慕课网APP

相关分类

Python
我要回答