当前位置: 首页 > 面试题库 >

模板中的Django外键关系

陆子航
2023-03-14
问题内容

我知道你会说这个问题被问过很多次了,但是我还没有解决呢…

models.py

class Doc(UploadModel):
    doc_no =  models.CharField(max_length=100, verbose_name = "No", blank=True)
    date_added = models.DateTimeField(verbose_name="Date", default=datetime.now,
                 editable=False)

class DocImage(models.Model):
    property = models.ForeignKey(Doc, related_name='images')
    image = FileBrowseField("Docs", max_length=200,
            directory="doc_img/%Y/%m/%d/%H/%M/%S/", 
            extensions=[".jpg",".tif"], blank=True, null=True)

views.py

def doc_detail(request, dosc_no):

    res = Doc.objects.filter(doc_no = dosc_no)        
    return render_to_response("doc/doc_detail.html",  {"result": res})

模板:

{% for i in docimage.property_set.all %}

{{ i.image.url }}

{% endfor %}

我已经尝试过上面的模板,但没有得到任何结果。所以我想在DocImage类中获取imageurl地址…

所有帮助


问题答案:

如果您查看外键文档,如果您有类似的关系

Doc -> has many DocImages

您需要像这样在DocImages类上定义外键:

class DocImage(models.Model):
    property = models.ForeignKey(Doc, related_name='images')

如果您未设置相关名称,则可以像下面这样从Doc访问DocImage:

Doc.docimage_set.all()

有关对象的文档

但是related_name在属性字段中进行设置可以

Doc.images.all()

只要确保您在视图上下文中传递给模板的任何内容都与模板中使用的内容匹配,例如

# in the view
return render_to_response('mytemplate.html', { 'mydoc' : doc, 'mydocimage' : img }

然后可以在模板中使用它,如下所示:

# and in your template to get the images attached to the document
{% for i in mydoc.images.all %}
    ...
{% endfor %}

# or to get the document the image belongs to
{{ mydocimage.property.date_added }}


 类似资料:
  • 对编码来说是新的,如果已经涵盖了,请道歉。花了几个晚上在Django的文档、YouTube、谷歌和这里尝试各种方法来解决这个问题。 我有一个与驾驶员相关的模型路线,我试图在我的模板上显示所有与该路线相关的驾驶员的路线。然而,目前我所能得到的只是来自路线模型的数据,而不是相关驾驶员的数据。 会感谢任何帮助,因为我正在努力让我的头! Models.py Views.py 样板 我尝试过.prefetc

  • 我创建了一个出价模型,以便类型2用户可以在类型1用户创建的一些“帖子”上出价。为了实现这一点,我在模型“出价”中为帖子字段做了一个外键。 实际上,我想把出价与一个特定的帖子联系起来,在“帖子”模型中自动生成“id”。因此,我将get_absolute_url放在我的模板中的Post'id'旁边。我是django的新手,我不确定它是否能满足我的需求。 我如何将带有post_id的出价与模板中的某个特

  • 德夫斯, 我有一个2个模型,其中一个有一个外键属性作为对另一个的引用。现在我尝试在模板中查看这两个对象。 在我的模板中,我只想要我的产品的确切市场 我尝试了这样的东西: 在循环中,我得到像x1、x2、x3和object.market这样的字符串的值为x1。 所以我只想输出x1。 这些是我的模型:

  • 问题内容: 无论如何,在Django中是否可以为双外键建模? 例如,如果我有以下表格:音频,覆盖,html和表格:timeline_item,它具有一个字段ID,以及一个指定音频,覆盖或html的字段类别… 有谁知道我将如何在Django中进行建模?甚至有可能吗? 问题答案: 听起来像是多态关联。也许您可以使用ContentTypes框架解决Django通用关系的问题。

  • 问题内容: 我正在寻找一种使用django中的模运算符之类的方法。我想做的是在循环中的每个第四个元素中添加一个类名。 使用模数,它看起来像这样: 当然,这是行不通的,因为%是保留字符。还有其他方法吗? 问题答案: 您需要divisibleby(内置的django过滤器)。

  • 问题内容: 我正在尝试在Django模板中使用Vue.js。以下是一种这样的模板: 我将Vue的插值定界符更改为 [[]], 以避免与Django发生冲突。我的样子如下: 不幸的是,呈现的HTML包含。还有其他人遇到过类似的问题吗? 问题答案: 正如Vue v1.0的每个文档所说: 因此,在您的示例中更改为: 但是,强烈建议您使用新版本的Vue(版本2)以便保持最新!