我如何正确地从外键字段中获取值字段

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