私はモデルプロジェクトを持つプロジェクトと呼ばれるアプリケーションを持っています。だから、私は/ map.htmlテンプレートのプロジェクトからのデータにアクセスすることができます。Djangoは別のアプリケーションで定義されたモデルを参照しています - >空のQuerySet
Django Docsによると、
別のアプリケーションで定義されたモデルを参照するには、完全なアプリケーションラベルでモデルを明示的に指定できます。メーカーモデルは、上記の他のアプリケーションと呼ばれる生産に定義されている場合たとえば、あなたが使用する必要があるだろう:projects.models.pyから
class Car(models.Model):
manufacturer = models.ForeignKey(
'production.Manufacturer',
on_delete=models.CASCADE,
)
:
class Project(models.Model):
title = models.CharField(max_length=200)
text = models.TextField()
date = models.DateField()
featured_image = models.ImageField(
upload_to='projects/featured', blank=True)
lon = models.DecimalField(max_digits=10, decimal_places=8, default=1)
lat = models.DecimalField(max_digits=10, decimal_places=8, default=1)
location = models.CharField(max_length=200, blank=True)
からmap.models.py:
from django.db import models
from projects.models import Project
class MapData(models.Model):
map_data = models.ForeignKey(Project)
しかし、シェルにアクセスすると、空のクエリセットを取得:私のmap.models.pyファイルに関しては
>>> from map.models import MapData
>>> MapData.objects.all()
<QuerySet []>
を、私は私に同じ結果を与えるOneToOneField(Project)
を試してみました。そして私はmap_data = models.ForeignKey(projects.Project)
にNameErrorを与えて、map_data = models.ForeignKey('projects.Project')
を引用符で囲み、空のQuerySetを与えようとしました。
誰かが私がここで理解していないことを説明できますか?私が望むのは、map.htmlのテンプレートにproject.lat
、project.lon
、project.title
およびproject.featured_image
にアクセスできることだけです。
以前にいくつかのMapDataインスタンスを保存しましたか? – ettanany
いいえ、私はそうは思わない。あるいは私はいくつかの移行を行った。 – itchangry
'MapData.objects.all()'を実行するとどのように結果が得られると思いますか? – ettanany