如何在django的视图中使用多个模型实例?

如何在django的视图中使用多个模型实例?,django,Django,我创建了一个网站,当用户上传图像时,我会检测图像上的对象并显示它们。这是我的模型: class Document(models.Model): docfile = models.FileField(upload_to='documents/%Y/%m/%d') imgfile = models.FileField(upload_to='documents/%Y/%m/%d',default='settings.MEDIA_ROOT/default/default.jpg')

我创建了一个网站,当用户上传图像时,我会检测图像上的对象并显示它们。这是我的模型:

class Document(models.Model):
    docfile = models.FileField(upload_to='documents/%Y/%m/%d')
    imgfile = models.FileField(upload_to='documents/%Y/%m/%d',default='settings.MEDIA_ROOT/default/default.jpg')
    catagory = models.CharField(max_length=100,default="unknow")
docfile是原始图像,imgfile是我在图像中标记对象的图像,catagory是对象的类别

我的问题是,一幅图像中可能有多个对象,因此我的视图中可能有多个文档实例,但我不知道事先需要多少实例,因为这取决于检测结果


那么我如何实现这一点呢?如果我可以在视图中使用文档列表,如何在html模板中显示该列表中的内容?Thx.

您可以稍微更改您的型号:

class BaseImage(models.Model):
    docfile = models.FileField(upload_to='documents/%Y/%m/%d')
class Document(models.Model):
    base_image = models.ForeignKey(BaseImage)
    imgfile = models.FileField(upload_to='documents/%Y/%m/%d',default='settings.MEDIA_ROOT/default/default.jpg')
    catagory = models.CharField(max_length=100,default="unknow")
这样,您可以使用以下工具查询从基础图像中提取的所有对象:

my_image = BaseImage.objects.get(pk=some_id)
my_extracted_objects = my_image.document_set.all()
然后,在视图中,可以在上下文中发送该查询集,并在模板中显示每个查询集:

{% for document_object in my_extracted_objects %}
    <img src="{{ MEDIA_URL }}{{ document_object.imgfile.url }}">
{% endfor %}
{%用于my_-extracted_-objects%中的文档_-object}
{%endfor%}

如果我遗漏了什么或误解了问题,请告诉我。

正如@cdvv7788所说,我做了一些更改: 在我看来,我使用:

my_images = Document.objects.filter(base_image=newdoc.id)
其中newdoc是一个BaseImage实例,即用户上传的图像

在我的html模板中,我有下面列出所有检测结果的代码:

{%for image in my_images%}
    <img src="{{image.imgfile.url}}">
{%endfor%}
{%for my_images%}
{%endfor%}

听起来您想使用Django,它可以让您一次创建/编辑多个对象实例。谢谢!,这正是我需要的。但是我做了一些修改,为了方便起见,我把它们放在下面的答案中。