简体   繁体   English

Django - 在 Django 模板中为 if 语句获取外键字段名称

[英]Django - get foreign key field name in django template for if statement

in my template i have an if statement to check the type of file, however the file_type field is a foreign key object.在我的模板中,我有一个 if 语句来检查文件的类型,但是 file_type 字段是一个外键对象。 how can i get the file_type.type field to use in the if statement?我如何才能在 if 语句中使用 file_type.type 字段?

template:模板:

{% for file in Site.sitefiles_set.all %}
    {% if file.file_type != 'Site Plan' %}

model:模型:

class SiteFileType(models.Model):
    type = models.CharField(max_length=200)

    class Meta:
            verbose_name = "File Type"
            verbose_name_plural = "File Type"    

    def __unicode__(self):
        return self.type

class SiteFiles(models.Model): 
    showroom_config_data = models.ForeignKey(ShowroomConfigData,verbose_name="Showroom")
    major_site_info = models.ForeignKey(MajorSiteInfoData,verbose_name="Major Site")  
    site_image = models.ImageField(blank=True,upload_to=site_files_path)
    site_file = models.FileField(blank=True,upload_to=site_files_path)     
    file_name = models.CharField(max_length=200,verbose_name="File Name (Optional)",blank=True)
    file_type = models.ForeignKey(SiteFileType)

    class Meta:
            verbose_name = "Site Files"
            verbose_name_plural = "Site Files"

    def __unicode__(self):
        return '%s | %s ' % (self.showroom_config_data.location, self.major_site_info.location)

You just need to append type to the variable you have already (which is a SiteFileType object):您只需要将type附加到您已经拥有的变量(它是一个SiteFileType对象):

{% for file in Site.sitefiles_set.all %}
    {% if file.file_type.type != 'Site Plan' %}
    ...
    {% endif %}
{% endfor %}

只需按照点再上一层即可。

 {% if file.file_type.type != 'Site Plan' %}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM