私はゆるやかにチュートリアルに従いましたが、一般的な詳細ビューが正しく動作するように縫い合わせることはできません。私はpkを呼び出していますが、ページは表示されますが、変数{{publisher.name}}は表示されません。私はいくつかのコードをビューとモデルから削除しましたが、私は周辺機器と見なしていますが、エラーが明らかでない場合は再投稿できます。変数(フィールド?)はDjangoの一般的な詳細ビューで表示されません
すべてのファイルはHTMLファイルを除くポーリングディレクトリ内にあるが、ポーリング/テンプレート/世論調査で
おかげ
URL.pyがView.py
from django.conf.urls import url
from poll.views import PublisherList
from . import views
app_name = "poll"
urlpatterns = [
url(r'^publishers/$', PublisherList.as_view(), name = "publisherlist"),
url(r'^start/', views.PublisherCreate.as_view(), name = 'make-publisher'),
url(r'^(?P<pk>[0-9]+)/$', views.PublisherDetail.as_view(), name = 'detail-publisher'),
]
です
from django.shortcuts import render
from django.views.generic.edit import CreateView
from django.views import generic
from django.views.generic import ListView
from poll.models import Publisher
...
class PublisherDetail(generic.DetailView):
model = Publisher
template_name = 'Poll/publisher_details.html'
とHTMLファイル
{% extends "personal/header.html" %}
{% block content %}
<h1>{{ Publisher.name }}</h1>
<h1>Options</h1>
{%endblock%}
とmodels.py
from django.db import models
from django.core.urlresolvers import reverse
# Create your models here.
class Publisher(models.Model):
name = models.CharField(max_length=30)
address = models.CharField(max_length=50)
city = models.CharField(max_length=60)
state_province = models.CharField(max_length=30)
country = models.CharField(max_length=50)
website = models.URLField()
class Meta:
ordering = ["-name"]
def __str__(self): # __unicode__ on Python 2
return self.name
def get_absolute_url(self):
return reverse('build:details', kwargs = {'pk':self.pk})
まあ、通常は 'オブジェクト'です。 –
いいえ、 'get_context_object_name()'は、モデルの小文字の名前を使用します。 –
両方とも動作します:https://docs.djangoproject.com/en/1.11/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin.get_context_data –