【问题标题】:create a particular detail view创建特定的详细视图
【发布时间】:2018-12-17 09:20:24
【问题描述】:

我需要帮助来制定一个查询。

我的模型是这样的:

class Rider(models.Model):
    id_rider = models.IntegerField(default = 0,blank= True, primary_key=True)
    first_name = models.CharField(max_length = 256,blank= True)

[...] def str(自我): 返回 self.display_name

class Risultato(models.Model):
    TYPE_CHOICES = (('SR','sr'),('ITT', 'itt'),('HC', 'hc'),('1C','1c'),('TTT','ttt'))

    id_rider = models.ForeignKey(Rider,related_name='rider', on_delete=models.CASCADE)
    id_stage = models.ForeignKey(Stage,related_name='team', on_delete=models.CASCADE)
    type_ris = models.CharField(choices=TYPE_CHOICES,max_length = 256,blank= True)
    rank = models.IntegerField(default = 0,blank= True)
    punti = models.IntegerField(default = 0,blank= True)

    def __str__(self):
        return self.id_raider,self.id_stage,self.rank

我需要为骑手的详细信息创建一个详细视图,如下所示:

-------------------------------------------

骑手:[display_name]

年龄:[年龄]

...

...

--------得分历史-----

阶段 sr/itt ttt hc 1c tot

1 100 空 10 0 110

2 空 20 5 10 35

提前致谢!!

更新

我添加了视图和模板,但我看不到表格 视图.py:

class RiderDetails(DetailView):

    model = Rider
    template_name = 'game/rider_detail.html'

    def get_context_data(self, *args, **kwargs):
        context_data = super().get_context_data(**kwargs)
        context_data['risultato_qs'] = Risultato.objects.filter(id_rider=self.object)
        return context_data

rider_detail.html:

{% extends 'game/base.html'%}
{% block content %}
<h1>{{ rider.display_name }}</h1>
<table>
    <tbody>
    {% for risultato in risultato_qs %}
        <tr>
            <td>{{ risultato.stage }}</td>
            <td>{{ risutato.type_ris }}</td>
            <td>{{ risutato.punti }}</td>
            ... etc ...
        </tr>
    {% endfor %}
    </tbody>
</table>
{% endblock %}

screen page

【问题讨论】:

  • 这些缩写代表什么?

标签: django django-models django-templates django-views


【解决方案1】:

一个简单的例子可能如下所示:

class RiderDetails(DetailView):

    model = Rider
    template_name = 'path_to_rider_template'

    def get_context_data(self, *args, **kwargs):
        context_data = super().get_context_data(*args, **kwargs)
        context_data['risultato_qs'] = Risultato.objects.filter(id_rider=self.object)
        return context_data

然后在你的模板中你可以,例如:

... Rider details here ...

<table>
    <tbody>
    {% for risultato in risultato_qs %}
        <tr>
            <td>{{ risultato.stage }}</td>
            <td>{{ risutato.type_ris }}</td>
            ... etc ...
        </tr>
    {% endfor %}
    </tbody>
</table>

【讨论】:

  • 我试过了,但我只看到骑手的详细信息,我没有看到表格
  • 您可以添加您的模板并查看您的问题吗?
猜你喜欢
  • 1970-01-01
  • 2012-08-10
  • 2021-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-30
  • 1970-01-01
相关资源
最近更新 更多