误差
我正在尝试使用django-嵌套-内联包。看起来一切都正常,但是当我尝试用管理网站创建一个新的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')我注意到的事情
Course时,管理站点和站点本身不会崩溃。发布于 2015-02-26 03:24:21
看起来您的nested_inline应用程序没有安装,或者django可以找到模板。或者将模板添加到TEMPLATE_DIRS设置引用的目录中,或者更改内联的模板名。
按照您提供的链接中的用法:将nested_inline添加到INSTALLED_APPS
发布于 2022-09-07 21:25:33
为了完成ESPmorph的回答:
您需要在TEMPLATE_DIRS列表中添加希望使用模板的所有应用程序,如下所示:
INSTALLED_APPS = [
'django.contrib.admin',
...
"nested_inline",
]在django-嵌套-内联文档中指出了这一点:
用法:将nested_inline添加到INSTALLED_APPS
您需要对您自己的所有定制应用程序和所有第三方应用程序这样做,例如使用django-嵌套内联(add nested_inline)或django-多态(添加多态)。
https://stackoverflow.com/questions/28730591
复制相似问题