为了账号安全,请及时绑定邮箱和手机立即绑定

Django REST FRAMEWORK中的外键关系

Django REST FRAMEWORK中的外键关系

幕布斯7119047 2021-04-08 14:15:56
我想创建一个雇员对象,其属性包括预先存在的外键(部门)。当我看到雇员api ..我正在获取部门ID而不是部门名称....请帮助models.pyclass Department(models.Model):name = models.CharField(max_length= 20)def __str__(self):    return self.nameclass 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__'
查看完整描述

1 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

您可以使用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


查看完整回答
反对 回复 2021-04-27
  • 1 回答
  • 0 关注
  • 266 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信