如何将DEBUG应用于django管理表单字段?

时间:2016-03-03 17:05:44

标签: django django-models django-forms django-admin django-smart-selects

我正在处理模型中的字段,其中字段的值取决于表单中前一个字段中的选定选项(目前通过django管理员),我正在使用django-smart-selects < / p>

我会分享this video,以便更好地了解我的问题或情况以及询问如何应用DEBUG或与我在这种情况下工作的领域相关的净化的原因。

  • 视频中的父字段Segmento afectado让我选择多个选项

  • 视频中的子字段Movimiento,详细说明受影响的片段(在父字段中选择)可以执行的移动

我的情况

  1. 在视频中详细说明了当我在父字段中仅选择受影响的段时,移动选项部署在子字段中,而我的Django Server日志控制台显示为{{ 1}}使用status code HTTP/1.1 200操作,向我指示可以成功获取并部署与在父字段中选择的受影响段相对应的移动

  2. 但是,当我在父字段中选择多个受影响的片段时(如果我在前进中选择两个或更多片段),控制台上的我的django服务器立即显示GET({{ 1}}黄色),因为没有执行用户选择的第二个选择或第二个受影响的段,并且由于这个原因也没有在子字段中部署或出现与这些第二个受影响的段相关联的移动可以执行

  3. 我不知道如何解决这种情况,因为这种形式是父级(status code HTTP/1.1 404)和子级(Not Found)字段在django管理员中表示。< / p>

    我有一个名为Segmento Afectado的模型和另一个名为Movimiento的模型,并且AffectedSegment的{​​{1}}功能是如何获取部署的值的方式子字段符合父字段中的选择。

    我的模型和此行为的值的链接是:

    Movement

    以及我得到的方式出现在子字段中的移动符合父字段上的选择是这样的:

    ChainedManyToManyField

    我不知道如何解决这种情况。 我还有其他选择吗? JS,一些框架forntend? 另一个django应用程序?

    任何支持,有关它的方向,都将受到高度赞赏

    :d

1 个答案:

答案 0 :(得分:1)

只需简要地查看您的视频和“django-smart-select”应用程序的代码,我就可以看到这个应用程序不是为了做你正在尝试的。

当您只选择一个选项时,网址的结尾如下所示:

"../RehabilitationSession/movement/4/"

但是当你选择两个选项时,你的网址看起来像这样:

"../RehabilitationSession/movement/4,5/" 

然后你得到404错误。

错误的原因在于应用程序“django-smart-select”没有适当的url模式来处理“4,5”块。为此,它需要接受以逗号分隔的整数,然后在应用程序中实现某种解析器,以便根据多个条件过滤结果。

我不能给你完整的答案,但我可以告诉你,你几乎没有选择:

  1. 如果您有技能,可以尝试扩展上述应用并自行实施解析器和网址模式。

  2. 您可以根据上述字段的选择覆盖字段的查询,在管理类中执行相同的操作,但如果没有jQuery修改,它就不会有实时更改。

    < / LI>
  3. 您可以尝试其他一些应用程序,但我不能保证您会找到适合您问题的解决方案。