python-Django嵌套内联TemplateDoesNotExist

错误

我正在尝试使用django-nested-inline软件包.似乎一切正常,但是当我尝试使用管理网站创建新课程时,出现以下错误:

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已从两天前的0.3.3更新为0.3.4.更新的版本“添加了许可证并针对python 3更新了”.我使用的是0.3.4,还使用的是Python 2.7,而不是Python3.但是,我卸载了0.3.4,安装了0.3.3,然后重试.这没有用,并产生了相同的错误.此后,我卸载了0.3.3,然后重新安装了0.3.4.
>仅当我尝试通过管理网站添加新课程时,管理网站和网站本身不会崩溃.

解决方法:

看来您的nested_inline应用未安装,或者django可以找到模板.
要么将模板添加到TEMPLATE_DIRS设置引用的目录中,要么更改内联的模板名称.

根据您提供的链接中的用法:将nested_inline添加到INSTALLED_APPS

上一篇:阿里规范 - 五、MySQL 数据库 - (二)索引规约 - 10 - 【推荐】防止因字段类型不同造成的隐式转换,导致索引失效。


下一篇:修改嵌套字典中的元素,并为其指定“路径”