J'ai une forme personnalisée qui crée une entrée cachée d'un champ: Je dois faire ce petit tour pour "masquer" l'étiquette, mais ce que je veux faire est de supprimer de la forme. Je crée le formulaire comme celui-ci: p>
7 Réponses :
Je ne recommanderais pas de supprimer l'étiquette car elle rend le formulaire inaccessible. Vous pouvez Ajouter une classe CSS personnalisée sur le champ et dans votre CSS Faites de cette classe invisible .
edit strud> p> J'ai manqué que l'entrée a été cachée si l'accessibilité n'est donc pas une préoccupation. p> Vous pouvez rendre les champs de formulaire directement dans votre modèle : p>
Il ne s'agit que d'une entrée cachée de contrôle, je n'ai pas besoin de l'étiquette, j'utilise cette entrée cachée comme jeton.
Ok j'ai raté que le champ était caché. Désolé, je vais éditer la réponse ci-dessus.
Je pense que c'est la meilleure façon de le faire, mais ils devraient mettre en œuvre un moyen de supprimer des étiquettes dans une forme ... Merci!
Fonctionne avec Django 2.0 aussi.
Cela ne répond pas à la question imo
Ça a marché . Merci beaucoup !!!
Sauf si j'ai mal compris votre question, il vous suffit d'ajouter le champ MP_E à l'exclusion du tuple sous la classe Meta. N'est-ce pas ce dont vous avez besoin?
Non, j'ai besoin d'une entrée cachée, ce que je n'ai pas besoin, c'est l'étiquette devant elle.
Si vous utilisez le si vous êtes Vous pouvez également form.as_p code> ou
form.as_table code> méthode, Django ne doit pas afficher les étiquettes pour vos champs cachés de toute façon, il n'ya donc pas besoin de changer le Étiquette dans votre
__ init __ code> méthode.
champ.is_hiden code> pour vérifier si le champ est masqué. P>
La chose est que je veux utiliser le formulaire sans aucune personnalisation, changer de chose dans form.py, mais il semble qu'il est impossible de le faire
Comme je l'ai dit ci-dessus, Django ne montrera pas l'étiquette des champs cachés par défaut b>. Vous n'avez pas besoin de changer l'étiquette dans votre méthode __ init __ code>. Si l'étiquette est affichée, vous faites quelque chose dans votre point de vue ou votre modèle que vous n'avez pas inclus dans votre question.
Maintenant, (ma version de Django est 2.1.4), vous pouvez résoudre de cette manière -> Modifier Forms.py Fichier:
password = forms.CharField(label=False)
Aller à votre fichier Forms.pypy et Ajouter une étiquette = false
comme Ci-dessous P>
name = forms.CharField(required=True, max_length=100, widget=forms.TextInput(attrs={'placeholder': 'Enter Name *'}), label=False)
Label = False imprime false comme étiquette. Cela ne cache pas le nom de l'étiquette
Vous devez donner false et cela fonctionnera:
self.fields['mp_e'].label = False
Cela ne fonctionne pas, vous définissez une nouvelle valeur pour étiqueter
Comme indiqué par Ziyad Akmal, vous devez ajouter FALSE à l'option «Étiquette» dans votre définition de formulaire (regarder dans Forms.py)
J'ai trouvé cela utile et cela fonctionne pour moi!
class CustomForm(forms.Form): class Meta: ... #other properties such as model, fields, widgets and help text labels = { 'comment' : '', }
En dehors, n'oubliez pas la virgule suivante dans votre
exclude code> tuple. Il devrait être
exclure = ('mp_ordre',) code>