django中mysql外键_Django MySql,外键查询

我在Django有以下型号。在from django.db import models

#Show DB Table Model

class Shows(models.Model):

show_key = models.CharField(primary_key=True, max_length=7)

show_date = models.DateField(blank=True, null=True)

show_venue = models.CharField(max_length=50, blank=True, null=True)

show_city = models.CharField(max_length=50, blank=True, null=True)

show_state = models.CharField(max_length=3, blank=True, null=True)

show_country = models.CharField(max_length=3, blank=True, null=True)

class Meta:

managed = False

db_table = 'shows'

#Songs DB Table Model

class Songs(models.Model):

song_key = models.CharField(primary_key=True, max_length=8)

show_key = models.ForeignKey('Shows', models.DO_NOTHING, db_column='show_key', blank=True, null=True)

song_name = models.CharField(max_length=100, blank=True, null=True)

song_set = models.CharField(max_length=20, blank=True, null=True)

song_track = models.IntegerField(blank=True, null=True)

song_encore = models.IntegerField(blank=True, null=True)

song_segue = models.CharField(max_length=1, blank=True, null=True)

song_notes = models.CharField(max_length=100, blank=True, null=True)

song_cover = models.CharField(max_length=50, blank=True, null=True)

song_with_guest = models.CharField(max_length=50, blank=True, null=True)

class Meta:

managed = False

db_table = 'songs'

我正在尝试进行一个查询,该查询将查找符合特定条件的所有对象,例如:

^{pr2}$

上面的查询将返回多个对象。在

我需要更进一步,从Songs表/模型中提取与筛选的Show对象相关的所有信息。这些模型是相关的,“show_key”是主键/外键关系,是一对多的关系。在

我还需要将所有找到的数据打包成一个可用的表单,我可以迭代并发送到jinja2模板。在

例如:{% for item in query_results %}

  • item.show_date
  • item.show_venue
  • item.show_city
  • item.show_state
  • item.show_country

{% for song in item %}

song.song_namesong.song_setsong.song_tracksong.song_encoresong.song_seguesong.song_notes

{% endfor %}

提前谢谢。布伦特

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值