【发布时间】:2018-08-03 17:44:52
【问题描述】:
我在 Django 中设置了一个“报告”模型,它代表上传到网站的特定报告。此模型与“UserTechnology”模型具有 ForeignKey 关系,该模型是最终用户可以访问上传报告的所有可用方式的列表。
我在 index.html 页面上显示这些报告和一些关于它们的信息。我想根据特定报告的“UserTechnology”值将传递的 url 切换到我们链接报告的位置。
当尝试将报告的 UserTechnology 值与任何内容进行比较时,就会出现问题。例如,如果我只显示{{ report.UserTechnology }} 它工作正常,示例值为“FileManager”。但是,如果我尝试像{% "file" in report.UserTechnology %} 或{% report.UserTechnology == "FileManager %} 这样的东西,它总是返回False。
我认为问题在于在处理 ForeignKey 关系时我没有比较我认为我正在比较的内容,但我不确定如何访问除报告之外的特定报告的 UserTechnology.Name 的值。用户技术。
models.py:
class Report(models.Model):
Name = models.CharField(max_length=200, default=None, null=True)
LastUpdated = models.DateTimeField('date published', default=None,
null=True)
SharePointURL = models.CharField(max_length=500,default=None, null=True)
FileManagerLocation = models.TextField(default=None, null=True)
ReportText = models.CharField(max_length=400, default=None, null=True)
ReportImage = models.ImageField(default=None, null=True)
Category = models.ForeignKey(Category, default=None, null=True,
on_delete=models.CASCADE)
UserTechnology = models.ForeignKey(UserTechnology, default=None,
null=True, on_delete=models.CASCADE)
def __str__(self):
return self.Name
class UserTechnology(models.Model):
Name = models.CharField(max_length=50, default=None, null=True)
def __str__(self):
return self.Name
索引.html:
{% for report in reports %}
{% if forloop.counter0|divisibleby:4 %} <div class="row"> {% endif %}
<div class="col-lg-3 col-md-4 col-sm-6 portfolio-item">
<div class="card h-100">
<a href="{{ report.SharePointURL }}" target="_blank"><img class="card-img-top" id="reportImage" src="{{ report.ReportImage.url }}" alt=""></a>
<div class="card-body">
<h4 class="card-title">
<a href="{{ report.SharePointURL }}" target="_blank">{{ report.Name }}</a>
</h4>
<p class="card-text">{{ report.ReportText }}</p>
</div>
</div>
</div> <!-- portfolio-item -->
{% if forloop.counter|divisibleby:4 or forloop.last %}</div><!-- row closing --><hr>{% endif %}
{% endfor %}
【问题讨论】:
标签: django django-models foreign-keys