以下に示すように、webapp に 2 つの Django クラス、Image と Tag (書式設定を許してください) があります。
class Image(models.Model):
image_path = models.CharField(max_length=200)
image_name = models.CharField(max_length=200)
x = models.IntegerField(default=0)
y = models.IntegerField(default=0)
num_tags = models.IntegerField(default=0)
image_score = models.FloatField()
def __unicode__(self):
return u'%d' % self.id
class Meta:
unique_together = ("image_path", "image_name")
class Tag(models.Model):
TEXT_BRIGHTNESS_CHOICES = (
('bright', 'bright'),
('dark', 'dark'),
)
image = models.ForeignKey(Image)
tag_text = models.CharField(max_length=200)
x = models.IntegerField(default=0)
y = models.IntegerField(default=0)
width = models.IntegerField(default=0)
height = models.IntegerField(default=0)
textbrightness = models.CharField(max_length=10, choices=TEXT_BRIGHTNESS_CHOICES, default='dark')
text_alignment = models.CharField(max_length=16, default="horizontal")
def __unicode__(self):
return self.tag_text
Image.objects.all() の行に沿って、すべての Image オブジェクトのクエリを返したいのですが、クエリセットでは、Tag.image = Image.id であるすべての Tag オブジェクトも取得できますか? 申し訳ありませんが、これはSQLでは本当に簡単だと確信していますが、ここでそれを行う方法がわかりません...
編集:返信ありがとうございますが、クエリセットに画像情報とそれに関連付けられたすべてのタグの両方が含まれるようにする方法はありますか? すべての情報を含む XML 形式を生成しようとしています。例:
<image image_path="downloaded_images/1_music_working/">
<imageName>51rtpUU4meL.jpg</imageName>
<resolution x="393" y="500" />
<taggedRectangles>
#each tag associated with the photo will go here
</taggedRectangles>
</image>
Django テンプレートを使用して情報を入力しています。テンプレートは次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<tagset>
{% for object in query_set %}
<image image_path="{{object.image_path}}">
<imageName>{{object.image_name}}</imageName>
<resolution x="{{object.x}}" y="{{object.y}}" />
<taggedRectangles>
</taggedRectangles>
</image>
{% endfor %}
</tagset>