當我使用模板變量替換項目模型中的字段時,如{{ project.title }}
和{{ project.featured_image }}
。它像一個魅力。我可以在一個模型上使用{{variables}},但不能使用另一個模型?
但是,如果我嘗試在MapData模型{{ mapdata.location }}
的相同HTML模板中做類似的事情,它不會取代任何值,它只是空白。
這是爲什麼?我一直在閱讀模型並在Django Docs中查詢部分。它是否需要其他技術,因爲它是ForeignKey
?很顯然,我在這裏錯過了一些基本的東西,但我無法找到它自己的東西。
有人可以向我解釋如何「訪問」該MapData模型嗎?我已經通過管理員在這個models.py的每個字段中添加了一些正確的數據。
>>> from projects.models import *
>>> MapData.objects.all()
<QuerySet [<MapData: MapData object>, <MapData: MapData object>]>
>>> from projects.models import *
>>> Project.objects.all()
<QuerySet [<Project: Some title 1>, <Project: Some title 2>]>
哪裏型號:
from django.db import models
class Project(models.Model):
title = models.CharField(max_length=200)
text = models.TextField()
date = models.DateField()
featured_image = models.ImageField(
upload_to='projects/featured', default=False)
def __str__(self):
return self.title
class ProjectImage(models.Model):
project = models.ForeignKey(Project, related_name='images')
image = models.ImageField(upload_to='projects')
class MapData(models.Model):
project = models.ForeignKey(Project)
longitude = models.DecimalField(
max_digits=10, decimal_places=8, default=False)
latitude = models.DecimalField(
max_digits=10, decimal_places=8, default=False)
location = models.CharField(max_length=200, blank=True)
下面是測試HTML模板,project_detail.html
:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Project {{ project.title }}</title>
</head>
<body>
<div class="project_featured">
<img src="{{ MEDIA_URL }}/media/{{ project.featured_image }}" alt="{{ project.title }}" />
</div>
<div class="project_content">
<h4>{{ project.title }}</h4>
<p>{{ project.text|linebreaks }}</p>
<h5>{{ project.get_typology_display }}</h5>
<h5>Location: {{ mapdata.location }}</h5>
</div>
</body>
</html>
感謝,它工作。那麼這可能是我感到困惑。由於我在project_detail.html中,而不是project_list.html,我認爲這足夠上下文了。因此不需要循環。 – itchangry
@itchangry - 這一切都歸結爲項目和map_data之間的關係。你需要以某種方式告訴它你正在尋找什麼map_data。我想通過它的聲音想象你正在使用一個'DetailView'並且'context_object_name'被定義爲'project',這就是將'project'添加到上下文數據以及爲什麼允許你使用該變量 – Sayse
你是現貨!我需要閱讀環境和關係。 – itchangry