我正在查询两个型号要求和工卡要求具有badge_id指示的相关工卡之间的相关选择型号是,
class Badge(models.Model):
level = models.PositiveIntegerField(blank=False, unique=True)
name = models.CharField(max_length=255, blank=False , unique=True)
description = models.TextField(blank=True)
class Meta:
verbose_name = _("Badge")
verbose_name_plural = _("Badges")
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse("Badge_detail", kwargs={"pk": self.pk})
""" Requirement Model for requirements """
class Requirement(models.Model):
number = models.PositiveIntegerField(blank=False)
badge = models.ForeignKey(Badge, on_delete=models.CASCADE)
name = models.CharField(max_length=255)
description = models.TextField(blank=True)
class Meta:
verbose_name = _("Requirement")
verbose_name_plural = _("Requirements")
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse("Requirement_detail", kwargs={"pk": self.pk})
在我的视图中,我尝试连接两个表并进行检索。
""" ajax requirements in requirements table """
def get_requirements(request):
requirements = Requirement.objects.all().select_related('badge').values()
print(requirements)
return JsonResponse(list(requirements), safe=False)
结果是,对于前端,
到后端,
为什么不给予我两个表的值?
1条答案
按热度按时间laximzn51#
实现这一点的最佳方法是使用
Serializers
,它是处理从模型到JSON的数据转换以及相反转换的关键组件:若要使用此方法,可以创建以下序列化程序:
yourapp.serializers.py
之后,您应该转到views.py文件并进行以下更改:
通过这种方式,您将可以更灵活地向序列化程序添加字段或从序列化程序中删除字段,并且您的应用程序也将更加解耦和易于维护。