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-使用内联函数时进程中止的主要内容,如果未能解决你的问题,请参考以下文章

什么是内联函数

内联函数与#define的区别

内联函数

虚函数可以是内联函数吗?

Kotlin函数 ⑦ ( 内联函数 | Lambda 表达式弊端 | “ 内联 “ 机制避免内存开销 - 将使用 Lambda 表达式作为参数的函数定义为内联函数 | 内联函数本质 - 宏替换 )

内联函数