我如何正确地从外键字段中获取值字段
How i can get a value field from a foreignkey field properly
我想从 foreignkey
字段中获取一个值字段(名为“width
”),该字段名为 square
(用户最后可选择的选项)存在于我的表单中:
这是我用来获取此值(“宽度”)的代码行:
width = float(FormulaireIng.objects.get(square = FormulaireIng.objects.last()).values_list('width'))
这里是models.py:
class FormulaireIng(models.Model):
square = models.ForeignKey(Square, on_delete=models.CASCADE)
class Square(models.Model):
width = models.FloatField(verbose_name="Width", max_length=50)
开发后报错:
ValueError at /pdf/
Cannot query "4.0": Must be "Square" instance.
我如何从模型的外键字段中正确获取值字段。
提前致谢。
编辑了试图从模型中获取字段值“width”的函数:
def forms_render_pdf_view(request, *args, **kwargs):
template_path = 'pdf.html'
width = float(FormulaireIng.objects.get(square =
FormulaireIng.objects.last()).values_list('width'))
design = (2/8) / width
context = {'design': design}
错误清楚地表明了问题所在。它应该是一个 Square 实例而不是 FormulaireIng 实例。您要查找 Square 模型中的 'width',那么直接查询 Square 模型如何。可以传入方形对象的id,得到宽度。
width = Square.objects.get(id=id).width
再试一次。现在应该可以工作了
formulaire_object = FormulaireIng.objects.all().last()
square = formulaire_object.square
width = square.width
我想从 foreignkey
字段中获取一个值字段(名为“width
”),该字段名为 square
(用户最后可选择的选项)存在于我的表单中:
这是我用来获取此值(“宽度”)的代码行:
width = float(FormulaireIng.objects.get(square = FormulaireIng.objects.last()).values_list('width'))
这里是models.py:
class FormulaireIng(models.Model):
square = models.ForeignKey(Square, on_delete=models.CASCADE)
class Square(models.Model):
width = models.FloatField(verbose_name="Width", max_length=50)
开发后报错:
ValueError at /pdf/
Cannot query "4.0": Must be "Square" instance.
我如何从模型的外键字段中正确获取值字段。
提前致谢。
编辑了试图从模型中获取字段值“width”的函数:
def forms_render_pdf_view(request, *args, **kwargs):
template_path = 'pdf.html'
width = float(FormulaireIng.objects.get(square =
FormulaireIng.objects.last()).values_list('width'))
design = (2/8) / width
context = {'design': design}
错误清楚地表明了问题所在。它应该是一个 Square 实例而不是 FormulaireIng 实例。您要查找 Square 模型中的 'width',那么直接查询 Square 模型如何。可以传入方形对象的id,得到宽度。
width = Square.objects.get(id=id).width
再试一次。现在应该可以工作了
formulaire_object = FormulaireIng.objects.all().last()
square = formulaire_object.square
width = square.width