0

私はDjangoとpythonを初めて使用します。私は問題があります。Enterボタンをクリックした後、Djangoによってchange_listページに渡されることなく、同じchange_formページにリダイレクトされる方法はありますか?これは私が意味するUIです:

(すべてのフィールドセットの下にあるボタンを入力してください)私が何を意味するのかを理解し、いくつかの回答をいただければ幸いです。ありがとうございました :)。

4

3 に答える 3

2

submit_line.htmlテンプレートを変更します

私は変わった:

{% if show_save %}<input name="_save" type="submit" value="{% trans 'Save' %}" class="default" {{ onclick_attrib }}/>{% endif %}

に:

{% if show_save %}<input name="_continue" type="submit" value="{% trans 'Save' %}" class="default" {{ onclick_attrib }}/>{% endif %}

これにより、デフォルトの保存ボタンが保存して続行ボタンとして機能します。

このstackoverflow-questionまたはdjangoのドキュメントは、submit_line-templateを正しく変更するのに役立つ場合があります

完全な「submit_line.html」:

{% load i18n %}
<div class="submit-row">
{% if show_save %}<input type="submit" value="{% trans 'Save' %}" class="default" name="_continue" {{ onclick_attrib }}/>{% endif %}
{% if show_delete_link %}<p class="deletelink-box"><a href="delete/" class="deletelink">{% trans "Delete" %}</a></p>{% endif %}
{% if show_save_as_new %}<input type="submit" value="{% trans 'Save as new' %}" name="_saveasnew" {{ onclick_attrib }}/>{%endif%}
{% if show_save_and_add_another %}<input type="submit" value="{% trans 'Save and add another' %}" name="_addanother" {{ onclick_attrib }} />{% endif %}
</div>
于 2012-06-12T15:40:19.327 に答える
1

django管理者について話している場合、3つのボタンがあります。

  • 保存して新規追加
  • 保存して編集を続行します(これをクリックする必要があります)
  • 保存する

独自のアプリについて話している場合は、フォームに次のパラメーターを追加して、フォームの検証でそれをキャッチし、それに応じてリダイレクトします

編集:

カスタムボタンを作成したようです。ModelAdminのsave/enterメソッドをオーバーライドして、必要な場所にリダイレクトできます。フォームに非表示の次の入力を追加するだけです。

例:

settings.py

TEMPLATE_CONTEXT_PROCESSORS = (
    # other stuff
    "django.core.context_processors.request",
)

変更フォームテンプレート:

<input type="hidden" name="next" value="{{request.path}}" />
于 2012-06-12T15:22:38.847 に答える
0

エンターボタンを押すと、基になるhtmlフォームが送信されます。これはdjangoやpythonとは何の関係もなく、ブラウザ固有です。

django change_formには3つの送信ボタンがあり、最後のボタンが使用されます。

これを行うには複数の方法があります。

  • hange_form-templateをオーバーライドし、jqueryを追加して、keypressイベント(Enter)に反応し、選択したボタンを起動します。

  • それらのボタンを並べ替える

于 2012-06-12T15:29:09.300 に答える