私はDjangoが初めてで、アプリを開発していますが、このエラーで立ち往生しています。最初に私の母国語ではない英語について謝罪したいと思います。
私は記事の出版に関するウェブサイトを開発しています。ページ「パブリケーション」は、モデル インスタンスのリストを返します。私の場合は、データベース内のすべてのパブリケーションです。
私がやろうとしているのは、モデルの各インスタンスに URL を割り当てて、ユーザーがそれをクリックして、そのインスタンスの他の関連情報が取り込まれたページを表示できるようにすることです。
これを行うには、テンプレートで get_absolute_url を使用し、ビューで DetailView を使用しています。すべてのインスタンスのリストは正常に機能しますが、各インスタンスをクリックすると、エラー 'NoneType' object has no attribute '_default_manager' が実行されます。私はすでにグーグルで、あちこちでいくつかのガイドラインに従おうとし、Django docで解決策を見つけようとしましたが、解決策を見つけることができませんでした...
ここに私のコード:
models.py
class Publications(MPTTModel):
code = models.CharField(max_length=50)
title = models.CharField(max_length=150)
date = models.DateField(null=True)
magazine = models.CharField(max_length=50)
country = models.CharField(max_length=30)
slug = models.SlugField(max_length=150)
img01 = models.ImageField(upload_to="photo", blank=True, null=True)
link = models.URLField(max_length=200, blank=True, null=True)
template = models.ForeignKey("Template", related_name="publications", null=True, blank=True)
parent = models.ForeignKey('self', null=True, blank=True, related_name='children')
control_field = models.CharField(max_length=15)
class Meta:
verbose_name_plural = "Publications"
def __unicode__(self):
return self.title
def get_absolute_url(self):
return reverse('mag-publication',args=(self.slug,))
出版物.html
{% load mptt_tags %}
{% load sito_tags %}
{% full_tree_for_model myApp.Publications as publications %}
{% for publications,structure in publications|tree_info %}
{% if publications.img01 %}
<div id="title_publication_container">
<a href="{{ publications.get_absolute_url }}">{{ publications.magazine }}</a>
</div>
{% else %}
....
{% endif %}
{% endfor %}
urls.py
urlpatterns = patterns('',
url(r'^(?P<id_page>\d+)/(?P<slug>[\w-]+)/$', pages,),
url(r'^(?P<id_page>\d+)/(?P<slug_page>[\w-]+)/(?P<id>\d+)/(?P<slug>[\w-]+)/$', projects,),
url(r'^mag-publication/(?P<slug>[\w-]+)/$', PublicationDetailView.as_view() , name='mag-publication'),
)
view.py
class PublicationView(object):
queryset = Publications.objects.all()
class PublicationListView(PublicationView, ListView):
paginate_by = 20
class PublicationDetailView(PublicationView, DetailView):
slug_field = 'slug'
エラーは、このデバッグ情報を表示します:
AttributeError at /6/publications/*title_publication*/
**'NoneType' object has no attribute '_default_manager'**
Request Method: GET
Request URL: .../6/publications/*title_publication*/
Django Version: 1.5.4
Exception Type: AttributeError
Exception Value: 'NoneType' object has no attribute '_default_manager'
Exception Location: /home/gabriele/virtual_envs/virt2/lib/python2.7/site-packages/feincms/views/cbv/views.py in get_object, line 20
Python Executable: /home/gabriele/virtual_envs/virt2/bin/python
「例外の場所」で述べたように、問題はfeincmsに関係している可能性がありますが、モデルのインスタンスで作業しようとした後、すべてが出てきました。
ご協力ありがとうございました。