Django外键关系模板 [英] Django foreign key relation in template

查看:469
本文介绍了Django外键关系模板的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道你会说这个问题很多次被问到,但是我没有解决它...

i know you will say that this question is asked before many times but i havent solved it yet...

models.py

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地址...

i have tried above template but i didnt get any result. so i want to get imageurl adress in DocImage class...

所有帮助

推荐答案

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

If you review the foreign key documentation, if you have a relationship like

Doc -> has many DocImages

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

you need to define your foreign key on the DocImages class like so:

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

如果您没有设置相关名称,您可以从文档访问DocImages,如:

If you don't set related names, you can access the DocImages from the Doc like:

Doc.docimage_set.all()

但是,在属性字段中设置 related_name 可以让您执行

But setting related_name in the property field lets you do

Doc.images.all()

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

Just make sure whatever you pass to the template in the view context matches what is used in the template, e.g.

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

然后可以在模板中使用如下:

This can then be used in the template as follows:

# 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外键关系模板的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆