Y at-il idée que je peux mettre balise de fermeture (/>) dans la balise d'entrée de texte HTML dans le traitement des formulaires de django?

voix
0

// est forme en code django ici

<form method=post novalidate>
  {% csrf_token %}
  {{ form }}
  <button type=submit>Submit</button>
</form>

// maintenant la forme est rendu sous la forme

<input type=text name=phone_email required id=id_phone_email>
 <input type=text name=full_name required id=id_full_name>

// maintenant ce code html ne possède pas de champ d'entrée balise de fermeture (/>) tout je suis d'être capable d'exécuter le code de jsx en raison de l'absence de fermeture idée de tag.any d'entrée comment puis-je mettre la balise de fermeture (/>) dans django ??

Créé 19/12/2018 à 14:11
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
2

Pour passer outre comment une forme rend le code HTML pour ses champs d'entrée, vous pouvez créer un widget formulaire personnalisé.

from django.forms.widgets import Input

class JSXInput(Input):
    template_name = 'myapp/widgets/jsxinput.html'

Et ajouter ce widget à votre champ de formulaire:

class MyForm(Form):
    full_name = forms.CharField(widget=JSXInput)

Ensuite , vous pouvez crib hors du django/forms/widgets/input.htmlmodèle dans le django.forms.templatesmodule et ajoutez votre accolade fermante.

<input type="{{ widget.type }}" .... />

Ce fut pour Django 2, mais IIRC il est assez similaire à 1.11.

Cependant , vous devez vous demander si oui ou non votre code JSX doit être rendu par Django, ou plutôt être un atout statique qui parle alors à une API Django REST.

Créé 19/12/2018 à 14:39
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more