【发布时间】:2021-03-05 16:08:52
【问题描述】:
我有一个表单,用户提交存储在 user_submission 模型中的序列。在 Django admin 中,我添加了一个自定义列表显示命名算法(如下所示)。它需要obj。序列并运行外部脚本并以 HTML 格式显示输出。它在本地运行良好。当我尝试在生产服务器上使用它时,它显示 nginx 502 Bad Gateway。仅供参考:我使用 nginx 和 uWSGI 进行部署。我正在使用 Django 2.2 和 Python3.7。
class UserSubmissionAdmin(admin.ModelAdmin):
list_display = (
'submittersname',
'accession_url',
'naming_algorithm',
)
def naming_algorithm(self, obj):
if ">" in str(obj.sequence).split('\n')[0]:
obj.sequence = '\n'.join(
str(obj.sequence).split('\n')[1:])
return format_html('<a href="/run_naming_algorithm/?fulltextarea={0}&submission_id={1}" target="_blank">Naming Algorithm</a>'.format(obj.sequence, obj.id))
我有几个问题
-
在生产服务器中,如果我更改 DEBUG=True 上述功能有效。如果我将其更改为 DEBUG=False nginx 报告 502 Bad Gateway。为什么会发生这种情况以及如何解决和解决问题。任何指针都会有所帮助。
-
正如您在屏幕截图中看到的,我通过 URL 传递序列。在我看来,必须有更好的方法来做到这一点。我不知道。您有什么建议或替代方法吗?
【问题讨论】:
-
如果您将共享模型连同 DEBUG=False 一起注释掉,它在生产中是否有效?
-
@HemantMalik 是的,如果我保持 DEBUG=False,它可以在生产中工作。