【发布时间】:2022-01-27 15:15:43
【问题描述】:
我在 django 中使用 MVT。我正在使用通用 CBV(列表视图、详细视图)。这是我的代码
这是model.py
from django.db import models
class Singers(models.Model):
name= models.CharField(max_length=256)
age= models.IntegerField()
gender= models.CharField(max_length=10)
class Albums(models.Model):
name= models.CharField(max_length=256)
singer=models.ForeignKey(Singers, on_delete=models.CASCADE)
view.py
from django.views import generic
from core.models import Albums, Singers
#in generic view instead of functions, we use classes
class AlbumView(generic.ListView):
model = Albums
template_name = 'index.html'
paginate_by = 10
def get_queryset(self):
return Albums.objects.all()
class DetailView(generic.DetailView):
model = Albums
template_name = 'detailview.html'
这里是 urls.py
from django.urls import path
from core.views import AlbumView, DetailView
urlpatterns = [
path('album/', AlbumView.as_view()),
path('album/detail/<pk>/', DetailView.as_view())
]
这里是 index.html
{% block content %}
<h2>Albums</h2>
<ul>
{% for albums in object_list %}
<li>{{ albums.name }}</li>
{% endfor %}
</ul>
{% endblock %}
这里是 detailview.html
{% block content %}
<h1>name: {{Albums.name}}</h1>
<p><strong>Singer: {{Albums.Singer}}</strong></p>
{% endblock %}
详细视图无法正常工作。它没有获取专辑的名称和歌手的详细信息。
建议我该怎么做?
【问题讨论】:
-
在
detailview.html中,将Album更改为object,例如,使用{{Albums.name}}代替{{Albums.name}} -
然后它显示一个空白页面。我该怎么办?
标签: html django django-models django-views django-templates