我有两个模型Job
和JobDescription
。我在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')
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")