Django-使用内联函数时进程中止
Posted
技术标签:
【中文标题】Django-使用内联函数时进程中止【英文标题】:Django- When using Inline Function process aborted 【发布时间】:2016-07-16 19:23:23 【问题描述】:我在 django Admin 中遇到了一个奇怪的障碍。
当我使用inline=[inlineFunction]
时
然后它触发进程状态中止错误。
这是我的代码..
class ApplicationInline(admin.TabularInline):
"""
inline class Application
"""
model = Application
show_change_link = True
extra = 0
list_per_page = 2
def formfield_for_dbfield(self, db_field, **kwargs):
if db_field.name == 'logo':
request = kwargs.pop("request", None)
kwargs['widget'] = AdminApplicationLogoWidget
return db_field.formfield(**kwargs)
return super(ApplicationInline,
self).formfield_for_dbfield(db_field, **kwargs)
class CategoryAdmin(admin.ModelAdmin):
"""
custom Admin Class for category model
"""
list_display = ['name_row_1', 'create_date', 'hospital', 'speciality', 'sort_order']
search_fields = ['name_row_1', 'hospital__name', 'speciality__name']
inlines = [ApplicationInline]
list_per_page = settings.ADMIN_PAGE_SIZE
class Media:
js = (
'v1/js/jquery.min.js',
'v1/js/inline/function_categories.js'
)
def formfield_for_dbfield(self, db_field, **kwargs):
if db_field.name == 'logo':
request = kwargs.pop("request", None)
kwargs['widget'] = AdminCategoryLogoWidget
return db_field.formfield(**kwargs)
return super(CategoryAdmin,
self).formfield_for_dbfield(db_field,
**kwargs)
# Default Select Options in Action
BLANK_CHOICE_DASH = [("", "Select options")]
def get_action_choices(self, request, default_choices=BLANK_CHOICE_DASH):
"""
Return a list of choices for use in a form object. Each choice is a
tuple (name, description).
"""
choices = [] + default_choices
for func, name, description in six.itervalues(self.get_actions(request)):
choice = (name, description % model_format_dict(self.opts))
choices.append(choice)
return choices
当我在代码中添加inlines = [ApplicationInline]
时,浏览器页面会一次又一次地加载。
在我的本地服务器上运行良好。
我的问题是:当我点击保存按钮时,浏览器只会一次又一次地加载而不做任何操作。
我认为这不是代码问题,因为代码在我的本地服务器(Windows 机器)上运行,但在客户端服务器上仅在发生错误的单个页面上运行。我不知道什么是错误。因为我的代码没有任何错误。控制台中未显示任何错误。
客户端服务器是 AWS/Linux。
累加。对我来说,这个错误只发生在 linux 服务器上的管理部分,而不是任何其他服务器。我检查了在其他正在运行的服务器上运行的相同代码。但仅不适用于 AWS/linux 服务器。
【问题讨论】:
您需要显示代码,而不仅仅是其中的随机行;你需要告诉我们发生了什么,而不是显示一个看起来不错的屏幕截图。 “then fire process status aborted”是什么意思? 你试过import logging
,设置为DEBUG,也许你能找出循环的内容吗?
PLS 也显示 models.py 和 forms.py(如果存在)
哪个版本的 Django?
Django 1.8.0 ....
【参考方案1】:
感谢大家的宝贵建议。
我的问题终于解决了。我不知道最终的问题是什么,但是在我的主机服务器上将端口 80 更改为 82 后,所有问题都解决了。
问题可能与端口或数据库迁移有关。
【讨论】:
以上是关于Django-使用内联函数时进程中止的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin函数 ⑦ ( 内联函数 | Lambda 表达式弊端 | “ 内联 “ 机制避免内存开销 - 将使用 Lambda 表达式作为参数的函数定义为内联函数 | 内联函数本质 - 宏替换 )