问题描述
请帮忙,我不断收到这个没有意义的 ValueError。
系统:PostGres DB 上的 Django 2.2(带夹层)。
class Keyword(models.Model):
site = models.ForeignKey(Site,related_name='sitekeywords',on_delete=models.CASCADE)
keyword = models.CharField("Keyword",max_length=64)
def __str__(self):
return "%s" % (self.keyword)
class Meta:
verbose_name_plural = "Keywords"
注意:关键字 CharField 不需要是唯一的。
Keyword 模型上的 ID 由 Django 创建和管理。此关键字模型与具有显式 ID 字段的站点模型相关:
id = models.AutoField("ID",blank=False,primary_key=True)
。
当我在管理员中尝试编辑一个站点(将关键字编辑作为内联)时,我有时会收到一个 ValueError 显示:
invalid literal for int() with base 10: 'Neoproterozoic'
...
但是“新元古代”是一个keyword_keyword,代码应该使用keyword_id,所以我很困惑。
请注意,这只是一个示例,错误中的字符串可以是关系中的任何关键字_关键字字符串。
这是我来自 forms.py 的内联表单:
class KeywordAdminForm(fforms.ModelForm):
class Meta:
model = Keyword
fields = ['keyword']
class KeywordInlineAdminForm(KeywordAdminForm):
pass
Error during template rendering
In template /d/app/venv/lib64/python3.6/site-packages/django/contrib/admin/templates/admin/includes/fieldset.html,error at line 19
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>
堆栈跟踪如下:
Environment:
Request Method: GET
Request URL: http://ausgeol-dev.utas.edu.au/admin/ausgeolapp/site/4456/change/
Django Version: 2.2.16
Python Version: 3.6.8
Installed Applications:
('mezzanine.boot','django.contrib.auth','django.contrib.contenttypes','django.contrib.redirects','django.contrib.sessions','django.contrib.sites','django.contrib.sitemaps','django.contrib.gis','django.contrib.messages','dal','dal_select2','webapp','ausgeolapp','debug_toolbar','bootstrap','bootstrap4','bootstrap_datepicker_plus','jquery','vital_theme','vital_themeVT','mezzanine.conf','mezzanine.core','mezzanine.generic','mezzanine.pages','mezzanine.blog','mezzanine.forms','mezzanine.galleries','mezzanine.twitter','mezzanine.accounts','djgeojson','leaflet','django_tables2','django_filters','rest_framework','floppyforms','colorfield','compressor','filebrowser_safe','grappelli_safe','django.contrib.admin','django.contrib.staticfiles','django_comments')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware','mezzanine.core.request.CurrentRequestMiddleware','debug_toolbar.middleware.DebugToolbarMiddleware','mezzanine.core.middleware.RedirectFallbackMiddleware','mezzanine.core.middleware.AdminLoginInterfaceSelectorMiddleware','mezzanine.core.middleware.SitePermissionMiddleware','mezzanine.pages.middleware.PageMiddleware')
Template error:
In template /d/app/venv/lib64/python3.6/site-packages/django/contrib/admin/templates/admin/includes/fieldset.html,error at line 19
invalid literal for int() with base 10: 'Neoproterozoic'
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>
Traceback:
File "/d/app/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py" in inner
34. response = get_response(request)
File "/d/app/venv/lib64/python3.6/site-packages/django/core/handlers/base.py" in _get_response
145. response = self.process_exception_by_middleware(e,request)
File "/d/app/venv/lib64/python3.6/site-packages/django/core/handlers/base.py" in _get_response
143. response = response.render()
File "/d/app/venv/lib64/python3.6/site-packages/django/template/response.py" in render
106. self.content = self.rendered_content
File "/d/app/venv/lib64/python3.6/site-packages/django/template/response.py" in rendered_content
83. content = template.render(context,self._request)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/backends/django.py" in render
61. return self.template.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render
171. return self._render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/test/utils.py" in instrumented_test_render
96. return self.nodelist.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render
937. bit = node.render_annotated(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render_annotated
904. return self.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/loader_tags.py" in render
150. return compiled_parent._render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/test/utils.py" in instrumented_test_render
96. return self.nodelist.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render
937. bit = node.render_annotated(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render_annotated
904. return self.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/loader_tags.py" in render
150. return compiled_parent._render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/test/utils.py" in instrumented_test_render
96. return self.nodelist.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render
937. bit = node.render_annotated(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render_annotated
904. return self.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/loader_tags.py" in render
150. return compiled_parent._render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/test/utils.py" in instrumented_test_render
96. return self.nodelist.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render
937. bit = node.render_annotated(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render_annotated
904. return self.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/loader_tags.py" in render
62. result = block.nodelist.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render
937. bit = node.render_annotated(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render_annotated
904. return self.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/loader_tags.py" in render
62. result = block.nodelist.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render
937. bit = node.render_annotated(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render_annotated
904. return self.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/defaulttags.py" in render
209. nodelist.append(node.render_annotated(context))
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render_annotated
904. return self.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/loader_tags.py" in render
188. return template.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render
173. return self._render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/test/utils.py" in instrumented_test_render
96. return self.nodelist.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render
937. bit = node.render_annotated(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render_annotated
904. return self.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/defaulttags.py" in render
209. nodelist.append(node.render_annotated(context))
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render_annotated
904. return self.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/defaulttags.py" in render
209. nodelist.append(node.render_annotated(context))
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render_annotated
904. return self.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/loader_tags.py" in render
188. return template.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render
173. return self._render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/test/utils.py" in instrumented_test_render
96. return self.nodelist.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render
937. bit = node.render_annotated(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render_annotated
904. return self.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/defaulttags.py" in render
209. nodelist.append(node.render_annotated(context))
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render_annotated
904. return self.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/defaulttags.py" in render
209. nodelist.append(node.render_annotated(context))
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render_annotated
904. return self.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/defaulttags.py" in render
309. return nodelist.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render
937. bit = node.render_annotated(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render_annotated
904. return self.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/defaulttags.py" in render
309. return nodelist.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render
937. bit = node.render_annotated(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render_annotated
904. return self.render(context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render
993. return render_value_in_context(output,context)
File "/d/app/venv/lib64/python3.6/site-packages/django/template/base.py" in render_value_in_context
972. value = str(value)
File "/d/app/venv/lib64/python3.6/site-packages/django/utils/html.py" in <lambda>
388. klass.__str__ = lambda self: mark_safe(klass_str(self))
File "/d/app/venv/lib64/python3.6/site-packages/django/forms/boundfield.py" in __str__
33. return self.as_widget()
File "/d/app/venv/lib64/python3.6/site-packages/django/forms/boundfield.py" in as_widget
93. renderer=self.form.renderer,File "/d/app/venv/lib64/python3.6/site-packages/dal/widgets.py" in render
151. widget = super(WidgetMixin,self).render(name,value,attrs,**kwargs)
File "/d/app/venv/lib64/python3.6/site-packages/django/forms/widgets.py" in render
241. context = self.get_context(name,attrs)
File "/d/app/venv/lib64/python3.6/site-packages/django/forms/widgets.py" in get_context
678. context = super().get_context(name,attrs)
File "/d/app/venv/lib64/python3.6/site-packages/django/forms/widgets.py" in get_context
639. context['widget']['optgroups'] = self.optgroups(name,context['widget']['value'],attrs)
File "/d/app/venv/lib64/python3.6/site-packages/dal/widgets.py" in optgroups
141. self.filter_choices_to_render(selected_choices)
File "/d/app/venv/lib64/python3.6/site-packages/dal/widgets.py" in filter_choices_to_render
188. pk__in=[c for c in selected_choices if c]
File "/d/app/venv/lib64/python3.6/site-packages/django/db/models/query.py" in filter
892. return self._filter_or_exclude(False,*args,**kwargs)
File "/d/app/venv/lib64/python3.6/site-packages/django/db/models/query.py" in _filter_or_exclude
910. clone.query.add_q(Q(*args,**kwargs))
File "/d/app/venv/lib64/python3.6/site-packages/django/db/models/sql/query.py" in add_q
1290. clause,_ = self._add_q(q_object,self.used_aliases)
File "/d/app/venv/lib64/python3.6/site-packages/django/db/models/sql/query.py" in _add_q
1318. split_subq=split_subq,simple_col=simple_col,File "/d/app/venv/lib64/python3.6/site-packages/django/db/models/sql/query.py" in build_filter
1251. condition = self.build_lookup(lookups,col,value)
File "/d/app/venv/lib64/python3.6/site-packages/django/db/models/sql/query.py" in build_lookup
1116. lookup = lookup_class(lhs,rhs)
File "/d/app/venv/lib64/python3.6/site-packages/django/db/models/lookups.py" in __init__
20. self.rhs = self.get_prep_lookup()
File "/d/app/venv/lib64/python3.6/site-packages/django/db/models/lookups.py" in get_prep_lookup
210. rhs_value = self.lhs.output_field.get_prep_value(rhs_value)
File "/d/app/venv/lib64/python3.6/site-packages/django/db/models/fields/__init__.py" in get_prep_value
972. return int(value)
Exception Type: ValueError at /admin/ausgeolapp/site/4456/change/
Exception Value: invalid literal for int() with base 10: 'Neoproterozoic'
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)