Manejar el botón enter en change_form Django

Soy nuevo con Django y Python. Tengo un problema. ¿Hay alguna manera, después de hacer clic en el botón Intro, para ser redirigido a la misma página change_form sin que Django lo pase a la página change_list? Esta es la interfaz de usuario a la que me refiero:

(ingrese el botón debajo de todos los conjuntos de campos) Espero que pueda entender lo que quiero decir y darme algunas respuestas. Gracias :).

preguntado el 12 de junio de 12 a las 16:06

¿Qué hace el botón Intro y en qué se diferencia del botón Guardar que se proporciona de forma predeterminada? -

si, es diferente Quiero que mi botón de entrada pueda pasar instancias del conjunto de campos "Kode Produk" a tabularinline. Pero no se como. -

¿Tiene algún enlace que sea igual o casi igual con mi pregunta? Y también con las respuestas o pistas. gracias :). -

si su pregunta está respondida, marque la respuesta adecuada -

oh, lo siento, soy nuevo en saberlo. ¿Lo hace haciendo clic en la marca de la lista de verificación de cada respuesta? :D. -

3 Respuestas

Cambiar la plantilla de submit_line.html

He cambiado:

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

a:

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

lo que hará que el botón Guardar predeterminado actúe como el botón Guardar y continuar.

este stackoverflow-pregunta o documentación de django puede ayudarlo a cambiar la plantilla de línea de envío correctamente

completar "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>

contestado el 23 de mayo de 17 a las 11:05

pero, quiere decir que el botón Intro actuará como el botón "Guardar y continuar editando", ¿verdad? ¿O realmente no entiendo lo que quieres decir? Y luego, ¿provoca la actualización de la página? porque no necesito actualizar la página. Gracias :). - Lena

si presiona ingresar, su navegador activa el botón de envío predeterminado de ese formulario html en particular. En este caso, es el botón "guardar". Al cambiar el atributo de nombre de ese botón, actuará como el botón guardar y continuar. - mes.

Oke, eso coincide con lo que pensaba. Pero, ¿lo que quiero decir es que el botón guardará directamente todo mi conjunto de campos que acabo de completar? En caso afirmativo, ¿dónde se guardará? lista de cambios ? Muchas gracias por ti :D. - Lena

todo se guardará bien :) django está interpretando el valor de ese nombre-atributo. . - mes.

¡Ohh, esa es realmente una respuesta exitosa para mí! Muchísimas gracias :). - Lena

Si está hablando del administrador de Django, hay tres botones:

  • Guardar y agregar nuevo
  • Guardar y continuar editando (tienes que hacer clic en este)
  • Guardar

Si está hablando de sus propias aplicaciones, agregue un siguiente parámetro a sus formularios, captúrelo en la validación de formularios y rediríjalo en consecuencia.

Edit:

Veo que creó un botón personalizado, puede anular el método guardar/ingresar en su ModelAdmin y redirigir a donde quiera. Simplemente agregue una siguiente entrada oculta a su formulario.

Ejemplo:

settings.py

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

su plantilla de formulario de cambio:

<input type="hidden" name="next" value="{{request.path}}" />

Respondido el 12 de junio de 12 a las 16:06

Lo siento, ¿puede dar algunos códigos de muestra o pseudocódigo para que pueda entenderlo claramente? Lo siento, soy realmente un novato :). - Lena

Pero estoy usando fieldset del modelo, ¿cómo puedo configurarlos como ocultos? Lo siento, pero todavía no sé a qué te refieres con {{request.path}}. Realmente lo siento y muchas gracias por sus amables respuestas :). - Lena

el botón Intro hará que se envíe el formulario html subyacente. esto no tiene nada que ver con django o python y es específico del navegador.

el django change_form tiene tres botones de envío, se usará el último.

hay varias formas de hacer esto:

  • anule hange_form-template y agregue algo de jquery para reaccionar en el evento de pulsación de tecla (ingresar) y activar el botón de elección.

  • reordenar esos botones

Respondido el 12 de junio de 12 a las 16:06

Oh, ya veo, pero ¿hay alguna manera sin usar jquery? js tal vez? :S. - Lena

publiqué una respuesta alternativa :) - mes.

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.