使用smart_selects链式选择字段自定义django admin表格内联

问题描述

我正在尝试使用smart_selects实现名为{{ form.as_p }}的依赖选择字段(取决于另一个选择字段)。我已经按照文档(https://django-smart-selects.readthedocs.io/en/latest/index.html)进行操作,但是在没有{{ form.media.js }}标签的地方,他们不考虑(Django admin)模板。我指出这一点是因为实现步骤之一是在{{ form.as_p }}之前包含{% load i18n admin_urls static admin_modify %} <div class="js-inline-admin-formset inline-group" id="{{ inline_admin_formset.formset.prefix }}-group" data-inline-type="tabular" data-inline-formset="{{ inline_admin_formset.inline_formset_data }}"> <div class="tabular inline-related {% if forloop.last %}last-related{% endif %}"> {{ inline_admin_formset.formset.management_form }} <fieldset class="module {{ inline_admin_formset.classes }}"> <h2>{{ inline_admin_formset.opts.verbose_name_plural|capfirst }}</h2> {{ inline_admin_formset.formset.non_form_errors }} <table> <thead><tr> <th class="original"></th> {% for field in inline_admin_formset.fields %} {% if not field.widget.is_hidden %} <th{% if field.required %} class="required"{% endif %}>{{ field.label|capfirst }} {% if field.help_text %}&nbsp;<img src="{% static "admin/img/icon-unkNown.svg" %}" class="help help-tooltip" width="10" height="10" alt="({{ field.help_text|striptags }})" title="{{ field.help_text|striptags }}">{% endif %} </th> {% endif %} {% endfor %} {% if inline_admin_formset.formset.can_delete %}<th>{% trans "Delete?" %}</th>{% endif %} </tr></thead> <tbody> {% for inline_admin_form in inline_admin_formset %} {% if inline_admin_form.form.non_field_errors %} <tr><td colspan="{{ inline_admin_form|cell_count }}">{{ inline_admin_form.form.non_field_errors }}</td></tr> {% endif %} <tr class="form-row {% cycle "row1" "row2" %} {% if inline_admin_form.original or inline_admin_form.show_url %}has_original{% endif %}{% if forloop.last and inline_admin_formset.has_add_permission %} empty-form{% endif %}" id="{{ inline_admin_formset.formset.prefix }}-{% if not forloop.last %}{{ forloop.counter0 }}{% else %}empty{% endif %}"> <td class="original"> {% if inline_admin_form.original or inline_admin_form.show_url %}<p> {% if inline_admin_form.original %} {{ inline_admin_form.original }} {% if inline_admin_form.model_admin.show_change_link and inline_admin_form.model_admin.has_registered_model %}<a href="{% url inline_admin_form.model_admin.opts|admin_urlname:'change' inline_admin_form.original.pk|admin_urlquote %}" class="{% if inline_admin_formset.has_change_permission %}inlinechangelink{% else %}inlineviewlink{% endif %}">{% if inline_admin_formset.has_change_permission %}{% trans "Change" %}{% else %}{% trans "View" %}{% endif %}</a>{% endif %} {% endif %} {% if inline_admin_form.show_url %}<a href="{{ inline_admin_form.absolute_url }}">{% trans "View on site" %}</a>{% endif %} </p>{% endif %} {% if inline_admin_form.needs_explicit_pk_field %}{{ inline_admin_form.pk_field.field }}{% endif %} {{ inline_admin_form.fk_field.field }} {% spaceless %} {% for fieldset in inline_admin_form %} {% for line in fieldset %} {% for field in line %} {% if field.field.is_hidden %} {{ field.field }} {% endif %} {% endfor %} {% endfor %} {% endfor %} {% endspaceless %} </td> {% for fieldset in inline_admin_form %} {% for line in fieldset %} {% for field in line %} {% if not field.field.is_hidden %} <td{% if field.field.name %} class="field-{{ field.field.name }}"{% endif %}> {% if field.is_readonly %} <p>{{ field.contents }}</p> {% else %} {{ field.field.errors.as_ul }} {{ field.field }} {% endif %} </td> {% endif %} {% endfor %} {% endfor %} {% endfor %} {% if inline_admin_formset.formset.can_delete %} <td class="delete">{% if inline_admin_form.original %}{{ inline_admin_form.deletion_field.field }}{% endif %}</td> {% endif %} </tr> {% endfor %} </tbody> </table> </fieldset> </div> </div> 标记

但是django表格内联模板(位于pathtodjango \ contrib \ admin \ templates \ admin \ edit_inline \ tabular.html中)

看起来如下;

{{ form.as_p }}

重点是-没有{{ form.media.js }}标签。我尝试将ChainedForeignKey标记包括在至少没有什么意义的地方,但我无法使 std::optional<std::string> so; std::cout << so->size() << std::endl; std::cout << so.has_value(); 起作用。我相信执行的其他部分做得正确。任何想法将不胜感激。谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)