- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我制作了一个自定义模型表单,以便我可以更改标题文本:
表单.py
class AddRoomAddRoomExtrasForm(ModelForm):
roomextrafields = forms.ModelChoiceField(queryset=RoomExtra.objects.all(), label=_('Room Extras'))
class Meta:
model = RoomExtra
fields = ('roomextrafields', )
admin.py
class RoomExtraInLine(admin.TabularInline):
model = Room.roomextra.through
extra = 1
verbose_name = _('extra')
verbose_name_plural = _('extras')
form = AddRoomAddRoomExtrasForm
class RoomAdmin(admin.ModelAdmin):
model = Room
inlines = [RoomExtraInLine, ]
exclude = ['roomextra', ]
模型.py
class Room(models.Model):
roomextra = models.ManyToManyField(
to='hotel.RoomExtra',
related_name='room_extras',
)
但我收到错误:
IntegrityError at /admin/hotel/room/add/
NOT NULL constraint failed: hotel_room_roomextra.roomextra_id
回溯
Environment:
Request Method: POST
Request URL: http://127.0.0.1:8000/admin/hotel/room/add/
Django Version: 2.2.9
Python Version: 3.8.0
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'whitenoise.runserver_nostatic',
'django.contrib.staticfiles',
'users',
'hotel',
'reservation',
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount']
Installed Middleware:
('whitenoise.middleware.WhiteNoiseMiddleware',
'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'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')
Traceback:
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/db/backends/utils.py" in _execute
84. return self.cursor.execute(sql, params)
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/db/backends/sqlite3/base.py" in execute
383. return Database.Cursor.execute(self, query, params)
The above exception (NOT NULL constraint failed: hotel_room_roomextra.roomextra_id) was the direct cause of the following exception:
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/core/handlers/exception.py" in inner
34. response = get_response(request)
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/core/handlers/base.py" in _get_response
115. response = self.process_exception_by_middleware(e, request)
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/core/handlers/base.py" in _get_response
113. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/contrib/admin/options.py" in wrapper
606. return self.admin_site.admin_view(view)(*args, **kwargs)
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/utils/decorators.py" in _wrapped_view
142. response = view_func(request, *args, **kwargs)
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
44. response = view_func(request, *args, **kwargs)
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/contrib/admin/sites.py" in inner
223. return view(request, *args, **kwargs)
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/contrib/admin/options.py" in add_view
1645. return self.changeform_view(request, None, form_url, extra_context)
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/utils/decorators.py" in _wrapper
45. return bound_method(*args, **kwargs)
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/utils/decorators.py" in _wrapped_view
142. response = view_func(request, *args, **kwargs)
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/contrib/admin/options.py" in changeform_view
1529. return self._changeform_view(request, object_id, form_url, extra_context)
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/contrib/admin/options.py" in _changeform_view
1573. self.save_related(request, form, formsets, not add)
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/contrib/admin/options.py" in save_related
1116. self.save_formset(request, form, formset, change=change)
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/contrib/admin/options.py" in save_formset
1104. formset.save()
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/forms/models.py" in save
669. return self.save_existing_objects(commit) + self.save_new_objects(commit)
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/forms/models.py" in save_new_objects
807. self.new_objects.append(self.save_new(form, commit=commit))
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/forms/models.py" in save_new
947. return super().save_new(form, commit=commit)
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/forms/models.py" in save_new
646. return form.save(commit=commit)
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/forms/models.py" in save
458. self.instance.save()
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/db/models/base.py" in save
740. self.save_base(using=using, force_insert=force_insert,
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/db/models/base.py" in save_base
777. updated = self._save_table(
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/db/models/base.py" in _save_table
870. result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/db/models/base.py" in _do_insert
907. return manager._insert([self], fields=fields, return_id=update_pk,
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/db/models/manager.py" in manager_method
82. return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/db/models/query.py" in _insert
1186. return query.get_compiler(using=using).execute_sql(return_id)
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/db/models/sql/compiler.py" in execute_sql
1368. cursor.execute(sql, params)
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/db/backends/utils.py" in execute
99. return super().execute(sql, params)
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/db/backends/utils.py" in execute
67. return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/db/backends/utils.py" in _execute_with_wrappers
76. return executor(sql, params, many, context)
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/db/backends/utils.py" in _execute
84. return self.cursor.execute(sql, params)
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/db/utils.py" in __exit__
89. raise dj_exc_value.with_traceback(traceback) from exc_value
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/db/backends/utils.py" in _execute
84. return self.cursor.execute(sql, params)
File "/Users/leonhughes/Documents/virtualenvs/django/hlms/env/lib/python3.8/site-packages/django/db/backends/sqlite3/base.py" in execute
383. return Database.Cursor.execute(self, query, params)
Exception Type: IntegrityError at /admin/hotel/room/add/
Exception Value: NOT NULL constraint failed: hotel_room_roomextra.roomextra_id
但是当我使用标准形式时,即。注释掉:
form = AddRoomAddRoomExtrasForm
一切都正确保存,并且没有完整性错误。为了使功能达到预期效果,我还需要向自定义表单添加什么?
更新
根据 @Chris 的建议,我更改了 Meta 字段,因此表单类变为:
class AddRoomAddRoomExtrasForm(forms.ModelForm):
roomextrafields = forms.ModelChoiceField(queryset=RoomExtra.objects.all(), label=_('Room Extras'))
class Meta:
model = Room.roomextra.through
fields = ('roomextrafields', )
但出现同样的错误
最佳答案
因为我想做的就是更改表格中的列标签,所以我能够将表单更改为:
class AddRoomAddRoomExtrasForm(forms.ModelForm):
class Meta:
model = Room.roomextra.through
fields = '__all__'
labels = {
'roomextra': _('Room Extra(s)'),
}
问题出在自定义字段上。测试时设置为“全部”允许模型保存
关于python - 管理表格内联上的自定义模型表单出现完整性错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59847339/
我已经使用 vue-cli 两个星期了,直到今天一切正常。我在本地建立这个项目。 https://drive.google.com/open?id=0BwGw1zyyKjW7S3RYWXRaX24tQ
您好,我正在尝试使用 python 库 pytesseract 从图像中提取文本。请找到代码: from PIL import Image from pytesseract import image_
我的错误 /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference
我已经训练了一个模型,我正在尝试使用 predict函数但它返回以下错误。 Error in contrasts<-(*tmp*, value = contr.funs[1 + isOF[nn]])
根据Microsoft DataConnectors的信息我想通过 this ODBC driver 创建一个从 PowerBi 到 PostgreSQL 的连接器使用直接查询。我重用了 Micros
我已经为 SoundManagement 创建了一个包,其中有一个扩展 MediaPlayer 的类。我希望全局控制这个变量。这是我的代码: package soundmanagement; impo
我在Heroku上部署了一个应用程序。我正在使用免费服务。 我经常收到以下错误消息。 PG::Error: ERROR: out of memory 如果刷新浏览器,就可以了。但是随后,它又随机发生
我正在运行 LAMP 服务器,这个 .htaccess 给我一个 500 错误。其作用是过滤关键字并重定向到相应的域名。 Options +FollowSymLinks RewriteEngine
我有两个驱动器 A 和 B。使用 python 脚本,我在“A”驱动器中创建一些文件,并运行 powerscript,该脚本以 1 秒的间隔将驱动器 A 中的所有文件复制到驱动器 B。 我在 powe
下面的函数一直返回这个错误信息。我认为可能是 double_precision 字段类型导致了这种情况,我尝试使用 CAST,但要么不是这样,要么我没有做对...帮助? 这是错误: ERROR: i
这个问题已经有答案了: Syntax error due to using a reserved word as a table or column name in MySQL (1 个回答) 已关闭
我的数据库有这个小问题。 我创建了一个表“articoli”,其中包含商品的品牌、型号和价格。 每篇文章都由一个 id (ID_ARTICOLO)` 定义,它是一个自动递增字段。 好吧,现在当我尝试插
我是新来的。我目前正在 DeVry 在线学习中级 C++ 编程。我们正在使用 C++ Primer Plus 这本书,到目前为止我一直做得很好。我的老师最近向我们扔了一个曲线球。我目前的任务是这样的:
这个问题在这里已经有了答案: What is an undefined reference/unresolved external symbol error and how do I fix it?
我的网站中有一段代码有问题;此错误仅发生在 Internet Explorer 7 中。 我没有在这里发布我所有的 HTML/CSS 标记,而是发布了网站的一个版本 here . 如您所见,我在列中有
如果尝试在 USB 设备上构建 node.js 应用程序时在我的树莓派上使用 npm 时遇到一些问题。 package.json 看起来像这样: { "name" : "node-todo",
在 Python 中,您有 None单例,在某些情况下表现得很奇怪: >>> a = None >>> type(a) >>> isinstance(a,None) Traceback (most
这是我的 build.gradle (Module:app) 文件: apply plugin: 'com.android.application' android { compileSdkV
我是 android 的新手,我的项目刚才编译和运行正常,但在我尝试实现抽屉导航后,它给了我这个错误 FAILURE: Build failed with an exception. What wen
谁能解释一下?我想我正在做一些非常愚蠢的事情,并且急切地等待着启蒙。 我得到这个输出: phpversion() == 7.2.25-1+0~20191128.32+debian8~1.gbp108
我是一名优秀的程序员,十分优秀!