4

エラー

django-nested-inlineパッケージを使用しようとしています。すべてが機能しているように見えますが、管理 Web サイトで新しい Web サイトを作成しようとするとCourse、次のエラーが表示されます。

TemplateDoesNotExist at /admin/courses/course/5/

admin/edit_inline/stacked-nested.html

しかしもちろん、admin/edit_inline/stacked-nested.htmlテンプレートのレンダリング中にエラーが発生したため、存在しません:

Error during template rendering

In template C:\...\django\contrib\admin\templates\admin\change_form.html, error at line 62

admin/edit_inline/stacked-nested.html

60 {% block inline_field_sets %}
61 {% for inline_admin_formset in inline_admin_formsets %}
62     {% include inline_admin_formset.opts.template %}
63 {% endfor %}
64 {% endblock %}

ご覧のとおり、Django がレンダリングしようとすると、何かが台無しになります。

{% include inline_admin_formset.opts.template %}

マイコード

これが私のadmin.pyものですが、上記のエラーとは実際には何の関係もないと思います:

from django.contrib import admin
from nested_inline.admin import NestedStackedInline, NestedModelAdmin
from courses.models import Course, Skill, Note

class NoteInline(NestedStackedInline):
    model = Note
    extra = 0

class SkillInline(NestedStackedInline):
    model = Skill
    extra = 0
    inlines = [NoteInline]

class CourseAdmin(NestedModelAdmin):
    inlines = [SkillInline]

admin.site.register(Course, CourseAdmin)

そして、これが私のものmodels.pyです:

from django.db import models

class Course(models.Model):
    course_name = models.CharField(max_length=200)
    course_description = models.CharField(max_length=1000, default='Course Description')
    course_subject = models.CharField(max_length=200, default='No Subject')

    def num_skills(self):
        return len(self.skill_set.all())

    def __unicode__(self):
        return self.course_name

    def __str__(self):
        return unicode(self).encode('utf-8')

class Skill(models.Model):
    course = models.ForeignKey(Course)
    skill_name = models.CharField(max_length=200)
    skill_description = models.CharField(max_length=1000, default='Skill Description')

    def __unicode__(self):
        return self.skill_name

    def __str__(self):
        return unicode(self).encode('utf-8')

class Note(models.Model):
    skill = models.ForeignKey(Skill)
    note_text = models.CharField(max_length=1000, default='...note text...')

    def __unicode__(self):
        return self.note_text

    def __str__(self):
        return unicode(self).encode('utf-8')

私が気づいたこと

  • django-nested-inlineは 2 日前に 0.3.3 から 0.3.4 に更新されました。更新版は「ライセンスを追加し、python 3 用に更新」したものです。私は 0.3.4 を使用していますが、Python 3 ではなく Python 2.7 も使用しています。ただし、0.3.4 をアンインストールし、0.3.3 をインストールして、もう一度試しました。これは機能せず、同じエラーが発生しました。それ以来、0.3.3 をアンインストールし、0.3.4 を再インストールしました。
  • 管理サイトから新しいサイトを追加しようとしても、管理サイトとサイト自体はクラッシュしませんCourse
4

1 に答える 1

4

nested_inline アプリがインストールされていないか、django がテンプレートを見つけることができるようです。それか、TEMPLATE_DIRS 設定によって参照されるディレクトリにテンプレートを追加するか、インラインのテンプレート名を変更します。

あなたが提供したリンクの使用法に従って:nested_inlineをINSTALLED_APPSに追加します

于 2015-02-26T03:24:21.970 に答える