【发布时间】:2020-05-07 02:08:59
【问题描述】:
Django 在管理界面中为我的一个模型呈现模板时输出错误。具体来说,我正在尝试在模型中添加一个新条目,我收到以下错误和回溯:
Template error:
In template C:\ProgramData\Anaconda3\envs\django\lib\site-packages\django\contrib\admin\templates\admin\includes\fieldset.html, error at line 19
'int' object is not iterable
9 : {% for field in line %}
10 : <div{% if not line.fields|length_is:'1' %} class="fieldBox{% if field.field.name %} field-{{ field.field.name }}{% endif %}{% if not field.is_readonly and field.errors %} errors{% endif %}{% if field.field.is_hidden %} hidden{% endif %}"{% elif field.is_checkbox %} class="checkbox-row"{% endif %}>
11 : {% if not line.fields|length_is:'1' and not field.is_readonly %}{{ field.errors }}{% endif %}
12 : {% if field.is_checkbox %}
13 : {{ field.field }}{{ field.label_tag }}
14 : {% else %}
15 : {{ field.label_tag }}
16 : {% if field.is_readonly %}
17 : <div class="readonly">{{ field.contents }}</div>
18 : {% else %}
19 : {{ field.field }}
20 : {% endif %}
21 : {% endif %}
22 : {% if field.field.help_text %}
23 : <div class="help">{{ field.field.help_text|safe }}</div>
24 : {% endif %}
25 : </div>
26 : {% endfor %}
27 : </div>
28 : {% endfor %}
29 : </fieldset>
回溯可以查看here
这是我的模型(博客条目和作者):
class Entry(models.Model):
entry_title = models.CharField(max_length=100)
entry_date = models.DateTimeField('date published')
entry_abstract = models.TextField(max_length=500)
entry_thumbnail = models.ImageField(default='default.png',
upload_to='static/blog/images',
blank=True)
raw_entry = models.FileField(upload_to=raw_directory_path)
html_content = models.FileField(blank=True)
entry_slug = models.SlugField(unique=True)
entry_authors = models.ManyToManyField(Author,
default=default_author)
class Author(models.Model):
first_name = models.CharField(max_length=100)
middle_name = models.CharField(max_length=100, blank=True)
last_name = models.CharField(max_length=100)
head_shot = models.ImageField(upload_to='blog/authors', blank=True)
email = models.EmailField(blank=True)
我最初认为该错误是由于使用 admin.ModelAdmin.list_display 等属性修改了我的管理界面引起的(请参阅here 和 here),但我禁用了添加自定义管理界面,但错误仍然存在。
我将继续阅读 django 中的管理界面文档。为了在 django 管理员中允许 ManyToMany 字段,我需要做些什么特别的事情吗?
【问题讨论】: