【发布时间】:2017-11-10 18:45:01
【问题描述】:
我正在尝试在 django-rest-framework 中联合两个模型。 我的代码没有抛出任何错误,但也没有显示需要加入的其他模型字段。
下面是我的代码sn-p:
序列化器:
class CompaniesSerializer(serializers.ModelSerializer):
class Meta:
model = Companies
fields = ('id', 'title', 'category')
class JobhistorySerializer(serializers.ModelSerializer):
companies = CompaniesSerializer(many=True,read_only=True)
class Meta:
model = Jobhistory
fields = ('id', 'title', 'company_id', 'companies')
查看。
class UserJobs(generics.ListAPIView):
serializer_class = JobhistorySerializer()
def get_queryset(self):
user_id = self.kwargs['user_id']
data = Jobhistory.objects.filter(user_id=user_id)
return data
型号:
class Companies(models.Model):
id = models.AutoField(primary_key=True)
title = models.CharField(max_length=100, blank=True, default='')
category = models.CharField(max_length=30, blank=True, default='')
created = models.DateTimeField(auto_now_add=True)
class Meta:
ordering = ('created',)
def save(self, *args, **kwargs):
title = self.title or False
category = self.category or False
super(Companies, self).save(*args, **kwargs)
class Jobhistory(models.Model):
id = models.AutoField(primary_key=True)
company_id = models.ForeignKey(Companies)
title = models.CharField(max_length=100, blank=True, default='')
created = models.DateTimeField(auto_now_add=True)
class Meta:
ordering = ('created',)
def save(self, *args, **kwargs):
company_id = self.company_id or False
title = self.title or False
super(Jobhistory, self).save(*args, **kwargs)
提前致谢。任何帮助将不胜感激。
【问题讨论】:
-
你能解释一下哪些字段没有显示吗?
company_id还是companies?您还可以添加您的models.py文件吗? -
我希望添加公司模型的所有字段作为响应。
-
我明白了,看看你的
models.py文件会很有帮助。我假设Jobhistory有一个指向Companies的ForeignKey? -
添加您的 models.py 和 views.py,以获得更多说明
-
介意您是否也可以发布您的模型?
标签: django python-3.x django-models django-rest-framework