如何在同一HTML页面上显示来自两个不同模型的数据

尼克·T

我有两个表,一个称为PlayerLkup,其中包含有关播放器的信息并用作查找表。我还有另一个表(称为BattingStats),其中包含玩家的状态(和playerid)。这张BattingStats表是一对多的(playerid被列出多次,每个赛季打一次)。

我的数据PlayerLkup显示正常,并且正在使用playeridURL地址中的来检索特定播放器。我的问题是如何使用BattingStats模型/表中的数据到同一页面上?我假设我的视图页面是需要完成的工作。有没有一种方法可以将多个模型传递到一个视图中?我试过相同的网址,不同的看法。它似乎没有为我工作。我需要做什么?在这里的任何帮助,将不胜感激。

我之前曾发布过此问题(并已将其删除),但有人错误地将其标记为重复,因此没有引起任何注意。

models.py

class BattingStats(models.Model):
    playerid = models.CharField(db_column='playerID', max_length=9)
    year = models.IntegerField(db_column='Year', blank=True, null=True)
    g = models.IntegerField(db_column='G', blank=True, null=True)
    ab = models.IntegerField(db_column='AB', blank=True, null=True)
    r = models.IntegerField(db_column='R', blank=True, null=True)
    hr = models.IntegerField(db_column='HR', blank=True, null=True)
    rbi = models.IntegerField(db_column='RBI', blank=True, null=True)
    sb = models.IntegerField(db_column='SB', blank=True, null=True)

class PlayerLkup(models.Model):
    playerid = models.CharField(db_column='playerID', primary_key=True, max_length=255)
    birthyear = models.IntegerField(db_column='birthYear', blank=True, null=True)
    birthmonth = models.IntegerField(db_column='birthMonth', blank=True, null=True)
    birthday = models.IntegerField(db_column='birthDay', blank=True, null=True)
    birthstate = models.CharField(db_column='birthState', max_length=255, blank=True, null=True)
    birthcity = models.CharField(db_column='birthCity', max_length=255, blank=True, null=True)
    namefirst = models.CharField(db_column='nameFirst', max_length=255, blank=True, null=True)
    namelast = models.CharField(db_column='nameLast', max_length=255, blank=True, null=True)
    weight = models.IntegerField(blank=True, null=True)
    height = models.IntegerField(blank=True, null=True)

views.py

def player_info(request, playerid):
    playerdata = PlayerLkup.objects.get(playerid=playerid)
    return render(request, 'careerstats/playerpage.html', {'playerdata': playerdata})

urls.py

urlpatterns = [
    path('player/<str:playerid>/', views.player_info, name='player_info'),
丹尼尔·罗斯曼

您可以在视图中执行任何操作,并在上下文中传递任意数量的模型。

但是在您的情况下,您实际上不需要更改视图,但是应该更改模型。看起来BattingStats应该通过该playerid字段与PlayerLkup有关系您应该将其设置为ForeignKey(并称之为player)-注意,实际上您根本不需要更改基础表,这可能很重要,因为这似乎是旧版数据库。

class BattingStats(models.Model):
    player = models.ForeignKey('PlayerLkup', db_column='playerID')

现在,您可以在模板中执行以下操作:

{{ playerdata.namefirst }}
{% for stat in playerdata.battingstats_set.all %}
  {{ stat.year }}
  {{ stat.g }}
  ... 
{% endfor %}

(另外,请给您的字段起更好的名字。它们不必与db列相同,这就是db_column属性的含义。没有理由使用。这样的单字符字段名g。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在同一张表中的同一模板上显示来自两个不同Django模型的实例?

具有来自不同模型的数据但显示在同一个视图上的两个部分视图

在索引页面上显示来自另外两个不同表的数据

如何在同一页面上显示两个Ag-grid表实例

组合来自不同应用程序/模型的两个查询以在单个概览页面上显示它们

在AngularJS的同一HTML页面上显示不同的数据

Django 显示来自两个不同模型的数据

如何在同一页面上放置两个自举轮播?

如何在同一页面上放置两个幻灯片框?

如何在两个页面上使用不同的基本html?

在laravel中如何在单个视图中显示来自两个不同模型的值

在同一个html页面上调用react js的两个不同组件

如何在一个html页面上应用两个svg?

如何在同一页面上使用具有不同CSS的具有相同功能的两个Toggle按钮?

如何在同一页面上有两个具有不同配置的TinyMCE编辑器

使用 css + html 在同一页面上编辑两个不同的 iframe min-height

如何在Excel的同一张图中显示两个范围相同但频率不同的数据系列?

如何在一个 HTML 页面上使用不同元素在不同时间调用两个函数?

如何在Django中添加同一模型的两个不同的整数字段

如何通过单击控制器不同的同一JSP页面上的两个不同按钮来开发两个call ajax?

如何在Codeigniter的单个页面上从两个不同的输入添加两个图像

如何将具有不同模块的两个图表放在同一页面上?

在同一页面上执行两个不同的操作时,如何处理mapStateToProps()函数?

如何在 Django 的一个 HTML 模板中显示在 ListView 中声明的两个不同模型的两个单独列表?

如何在React Native中显示来自两个不同键值的过滤后的JSON数据

Angular.js-如何将两个不同的链接重定向到同一页面,但在angular.js中显示不同的数据

是否可以在同一页面上运行两个不同版本的ReactJS?

同一页面上的两个不同的Yammer共享按钮

我希望同一页面上的两个Flexslider以不同的速度运行