Django Admin Kink 与折叠字段集

Posted

技术标签:

【中文标题】Django Admin Kink 与折叠字段集【英文标题】:Django Admin Kink with Collapse Fieldsets 【发布时间】:2011-11-30 02:23:24 【问题描述】:

我无法在管理控件中显示 collapse 字段集。最重要的是,每当我在管理控件中时,我也会时不时地收到加载错误,这似乎只会出现。我无法拼凑错误以推测导致问题的原因,但我似乎只能在将包含的代码包含在 admin.py 中时才能重现它。

管理布局错误

admin.py

从 forum.models 导入类别、主题、帖子 从 django.contrib 导入管理员 类 PostAdmin(admin.ModelAdmin): 字段集 = [ (无,'fields': ['author']), (无,'fields': ['thread']), (无,'fields': ['creation_date']), (无,'fields':['content'],'classes':['collapse']), (无,'fields': ['is_removed']), (无,'fields':['agrees'],'classes':['collapse']), (无,'fields':['thanks'],'classes':['collapse']), (无,'fields':['saves'],'classes':['collapse']), ] admin.site.register(发布,PostAdmin)

(偶尔)错误

回溯(最近一次通话最后): 运行中的文件“C:\Python27\lib\site-packages\django\core\servers\basehttp.py”,第 284 行 self.finish_response() 文件“C:\Python27\lib\site-packages\django\core\servers\basehttp.py”,第 324 行,finish_response self.write(数据) 文件“C:\Python27\lib\site-packages\django\core\servers\basehttp.py”,第 403 行,写入 self.send_headers() 文件“C:\Python27\lib\site-packages\django\core\servers\basehttp.py”,第 467 行,在 send_headers self.send_preamble() 文件“C:\Python27\lib\site-packages\django\core\servers\basehttp.py”,第 385 行,在 send_preamble '日期: %s\r\n' % http_date() 文件“C:\Python27\lib\socket.py”,第 324 行,写入 self.flush() 文件“C:\Python27\lib\socket.py”,第 303 行,刷新 self._sock.sendall(view[write_offset:write_offset+buffer_size]) 错误:[Errno 10053] 已建立的连接被主机中的软件中止 -------------------------------------- 处理来自 ('127.0.0.1', 64523) 的请求时发生异常 回溯(最近一次通话最后): _handle_request_noblock 中的文件“C:\Python27\lib\SocketServer.py”,第 284 行 self.process_request(request, client_address) 文件“C:\Python27\lib\SocketServer.py”,第 310 行,在 process_request 中 self.finish_request(request, client_address) 文件“C:\Python27\lib\SocketServer.py”,第 323 行,在 finish_request self.RequestHandlerClass(request, client_address, self) 文件“C:\Python27\lib\site-packages\django\core\servers\basehttp.py”,第 570 行,在 __init__ BaseHTTPRequestHandler.__init__(self, *args, **kwargs) __init__ 中的文件“C:\Python27\lib\SocketServer.py”,第 641 行 self.finish() 文件“C:\Python27\lib\SocketServer.py”,第 694 行,完成 self.wfile.flush() 文件“C:\Python27\lib\socket.py”,第 303 行,刷新 self._sock.sendall(view[write_offset:write_offset+buffer_size]) 错误:[Errno 10053] 已建立的连接被主机中的软件中止

任何想法可能导致这种情况?

编辑:经过仔细审查,即使折叠的字段被注释掉,错误仍然存​​在。布局问题可能与此错误有关或完全独立。很明显,我希望这两个都得到修复。

这是看似不同的错误:

回溯(最近一次通话最后): 运行中的文件“C:\Python27\lib\site-packages\django\core\servers\basehttp.py”,第 284 行 self.finish_response() 文件“C:\Python27\lib\site-packages\django\core\servers\basehttp.py”,第 324 行,finish_response self.write(数据) 文件“C:\Python27\lib\site-packages\django\core\servers\basehttp.py”,第 403 行,写入 self.send_headers() 文件“C:\Python27\lib\site-packages\django\core\servers\basehttp.py”,第 467 行,在 send_headers self.send_preamble() 文件“C:\Python27\lib\site-packages\django\core\servers\basehttp.py”,第 385 行,在 send_preamble '日期: %s\r\n' % http_date() 文件“C:\Python27\lib\socket.py”,第 324 行,写入 self.flush() 文件“C:\Python27\lib\socket.py”,第 303 行,刷新 self._sock.sendall(view[write_offset:write_offset+buffer_size]) 错误:[Errno 10053] 已建立的连接被主机中的软件中止 -------------------------------------- 处理来自 ('127.0.0.1', 50055) 的请求时发生异常 回溯(最近一次通话最后): _handle_request_noblock 中的文件“C:\Python27\lib\SocketServer.py”,第 284 行 self.process_request(request, client_address) 文件“C:\Python27\lib\SocketServer.py”,第 310 行,在 process_request 中 self.finish_request(request, client_address) 文件“C:\Python27\lib\SocketServer.py”,第 323 行,在 finish_request self.RequestHandlerClass(request, client_address, self) 文件“C:\Python27\lib\site-packages\django\core\servers\basehttp.py”,第 570 行,在 __init__ BaseHTTPRequestHandler.__init__(self, *args, **kwargs) __init__ 中的文件“C:\Python27\lib\SocketServer.py”,第 641 行 self.finish() 文件“C:\Python27\lib\SocketServer.py”,第 694 行,完成 self.wfile.flush() 文件“C:\Python27\lib\socket.py”,第 303 行,刷新 self._sock.sendall(view[write_offset:write_offset+buffer_size]) 错误:[Errno 10053] 已建立的连接被主机中的软件中止

以及相关的admin.py

从 forum.models 导入类别、主题、帖子 从 django.contrib 导入管理员 类 ThreadAdmin(admin.ModelAdmin): “管理控制面板中的线程布局。” # 动作 def admin_lock(self, request, queryset): rows_updated = queryset.update(is_locked=True) 如果 rows_updated == 1: message_bit = "1 个线程是" 别的: message_bit = "%s 个线程" % rows_updated self.message_user(request, "%s 成功标记为锁定" % message_bit) admin_lock.short_description = "锁定选定的线程" def admin_unlock(自我,请求,查询集): rows_updated = queryset.update(is_locked=False) 如果 rows_updated == 1: message_bit = "1 个线程是" 别的: message_bit = "%s 个线程" % rows_updated self.message_user(request, "%s 成功标记为未锁定" % message_bit) admin_unlock.short_description = "解锁选定线程" def admin_remove(自我,请求,查询集): rows_updated = queryset.update(is_removed=True) 如果 rows_updated == 1: message_bit = "1 个线程是" 别的: message_bit = "%s 个线程" % rows_updated self.message_user(request, "%s 成功标记为已删除" % message_bit) admin_remove.short_description = "删除选定的线程" def admin_restore(self, request, queryset): rows_updated = queryset.update(is_removed=False) 如果 rows_updated == 1: message_bit = "1 个线程是" 别的: message_bit = "%s 个线程" % rows_updated self.message_user(request, "%s 成功标记为已恢复" % message_bit) admin_restore.short_description = "恢复选定的线程" 动作 = ['admin_lock', 'admin_unlock', 'admin_remove', 'admin_restore'] date_hierarchy = '创作日期' list_display = ('标题', '类别', '作者', 'relative_date', 'creation_date') list_filter = ('category',) # 不起作用 search_fields = ['标题','作者'] 类 PostAdmin(admin.ModelAdmin): “在管理控制面板中发布布局。” # 动作 def admin_remove(自我,请求,查询集): rows_updated = queryset.update(is_removed=True) 如果 rows_updated == 1: message_bit = "1 个帖子是" 别的: message_bit = "%s 个帖子是" % rows_updated self.message_user(request, "%s 成功标记为已删除" % message_bit) admin_remove.short_description = "删除选中的帖子" def admin_restore(self, request, queryset): rows_updated = queryset.update(is_removed=False) 如果 rows_updated == 1: message_bit = "1 个帖子是" 别的: message_bit = "%s 个帖子是" % rows_updated self.message_user(request, "%s 成功标记为已恢复" % message_bit) admin_restore.short_description = "恢复选定的线程" 操作 = ['admin_remove', 'admin_restore'] date_hierarchy = '创作日期' list_display = ('线程', '作者', 'relative_date', 'creation_date') list_filter = ('线程',) search_fields = ['线程','作者'] admin.site.register(类别) admin.site.register(线程,线程管理员) admin.site.register(发布,PostAdmin)

相关问题

    Django runserver error Error on display static content

【问题讨论】:

您是否尝试给折叠的字段集一个标题(将 None 替换为标题)。 您是否使用 Firebug 或查看源代码检查了它们是否被渲染和隐藏或根本不存在? 【参考方案1】:

问题是这个(和类似的)行:

(None, 'fields': ['agrees'], 'classes': ['collapse']),

当字段集标题为None 时,没有字段集标题,因此无需单击以展开字段集。 This comment 在 Django 错误跟踪器中,虽然很旧,但表示不使用标题,collapse 是一个坏主意(tm),你“不应该这样做。”

至于您的其他问题,您的操作系统存在某种形式的问题。这只是意味着建立了一个连接(到您的 Python 服务器),但是您的计算机(您的主机)在 Python 完成连接之前由于某种原因终止了连接。

这个问题有点老了,但在“django fieldset collapse doesn't work”之类的搜索结果中仍然相当高,所以我想我可能会为以后的搜索者回答这个问题。

【讨论】:

以上是关于Django Admin Kink 与折叠字段集的主要内容,如果未能解决你的问题,请参考以下文章

最小化 django-admin 中的列表过滤器

Django Admin中的动态字段

根据值在 Admin 中自定义 Django 表单字段

Django Admin 中的动态字段

Django Admin -> 更改字段顺序,包括内联字段

Django admin:将必填字段设为只读