在Django REST框架中检索无关对象

在Django REST框架中检索无关对象,django,django-models,django-rest-framework,Django,Django Models,Django Rest Framework,我的模型由3个类组成:要约、申请和合同。关系如下: class Application(models.Model): application_name = models.CharField(max_length=255) class Offer(models.Model): offer_name = models.CharField(max_length=255) application = models.OneToOneField(Application) class C

我的模型由3个类组成:要约、申请和合同。关系如下:

class Application(models.Model):
   application_name = models.CharField(max_length=255)

class Offer(models.Model):
   offer_name = models.CharField(max_length=255)
   application = models.OneToOneField(Application)

class Contract(models.Model):
   contract_name = models.CharField(max_length=255)
   application = models.OneToOneField(Application)
申请报价:一对一

合同申请:一对一

型号代码如下:

class Application(models.Model):
   application_name = models.CharField(max_length=255)

class Offer(models.Model):
   offer_name = models.CharField(max_length=255)
   application = models.OneToOneField(Application)

class Contract(models.Model):
   contract_name = models.CharField(max_length=255)
   application = models.OneToOneField(Application)
是否有一种方法可以让我在一次REST通话中通过应用程序从报价中访问合同?我知道如何从报价中访问应用程序,因为它们是相关的。解决这一问题的一种方法是将报价与合同联系起来,但我不希望这样做,因为这不被认为是良好的关系数据库设计


任何帮助都将不胜感激。谢谢

您应该在您的关系中添加一个
相关的\u名称

类应用程序(models.Model):
应用程序名称=models.CharField(最大长度=255)
课程优惠(型号.型号):
offer\u name=models.CharField(最大长度=255)
application=models.OneToOneField(应用程序,相关的\u name='offer')
类别合同(models.Model):
合同名称=models.CharField(最大长度=255)
application=models.OneToOneField(应用程序,相关的\u name='contract')
您的url应如下所示:

path('offer//contract/',ContractDetailView.as_view(),name='contract-detail'),
从rest\u框架导入异常
从rest_framework.generics导入RetrieveAppView
类ContractDetailView(RetrieveAppView):
serializer\u class=ContractSerializer
...
def get_对象(自身):
尝试:
offer=offer.objects.get(pk=self.kwargs['pk'])
还盘
除Offer.DoesNotExist外:
引发异常。未找到('未找到报价')

你能发布你的模型吗?模型代码已经发布了。我的答案应该有用,试试看。