DRF-如何从具有PrimaryKey的模型类链接到具有ForeignKey的模型类

问题描述 投票:0回答:1

我有两个模型JobJobDescription。我在jobid中定义了一个ForeignKey JobDescription。 django-rest-framework发挥了魔力,并在id中找到了要自动链接的PK Job

在serializers.py JobDescriptionSerializer中,jobid将给我一个指向Job ID的超链接。到现在为止还挺好。

然而,这是一条单向街道(JobDescription-> Job)。我想向Job模型/序列化器添加一个字段,该字段也将允许以另一种方式进行超链接(Job-> JobDescription)。

[我浏览了关于ForeignKey的Django模型文档,并且有一些关于向前/向后关系的引用,但是如何在rest-framework模型/序列化器中实现呢?

感谢您的事先帮助!

models.py:

class Job(models.Model):
    title = models.CharField(max_length=100, default='')
    type = models.CharField(max_length=20, default='')
    location = models.CharField(max_length=100, default='')
    created_date = models.DateTimeField(auto_now_add=True)

    class Meta:
        ordering = ['id']

    def __str__(self):
        return self.title


class JobDescription(models.Model):
    jobid = models.ForeignKey(Job, related_name='desc2job', on_delete=models.CASCADE)
    description = models.TextField(blank=False)
    created_date = models.DateTimeField(default=timezone.now)

    class Meta:
        ordering = ['id']

    def __str__(self):
        return str(self.jobid)

serializers.py:

class JobSerializer(serializers.HyperlinkedModelSerializer):  

    class Meta:
        model = Job
        fields = (
        'url', 'id', 'title', 'type', 'location', 'created_date') 

class JobDescriptionSerializer(serializers.HyperlinkedModelSerializer):

    class Meta:
        model = JobDescription
        fields = ('url', 'id', 'jobid', 'description', 'created_date')
django django-models django-rest-framework django-serializer
1个回答
0
投票
class JobSerializer(serializers.ModelSerializer): jobs_description = serializers.PrimaryKeyRelatedField(source="desc2job",many=False, read_only=True) class Meta: model = Job fields = ("url", "id", "title", "type", "location", "created_date", "jobs_description")
© www.soinside.com 2019 - 2024. All rights reserved.