creation module : set_tags
#1
bonsoir,

En suivant l'exemple castor/beaver mon formulaire créé est avec des champs obligatoires.

Comment je dois faire pour que les champs ne soient pas obligatoires ?

Y a set_tags que j'ai mis dans le fichier models de python mais ça ne marche pas !
  Répondre
#2
Bonjour,

je vous conseillerai de vous familiariser avec la documentation de Django ; au final beaucoup de questions que vous vous posez y trouveront une réponse, car au final les modèles, vues, formulaires, templates etc.. sont des outils Django avant tout.

Pour votre question précisément, Il y a plusieurs façons de faire mais la plus simple est de déclarer votre champ .

"blank" est un attribut des champ Django ; et comme il n'est pas possible d'ajouter ses propres attributs sans dériver des champs Django (ce qu'on veut éviter et garder du code le plus à la Django), et qu'on voulait pour indiquer certaines caractéristiques de champ en gardant une façon proche des attributs de base, on a mis en place ce système de tags. Les 4 tags disponibles actuellement ('clonable', 'viewable', 'enumerable', 'optional') sont décrits dans le tutoriel (section "Plus loin avec les modèles: les Tags").
  Répondre
#3
(18-11-2020, 13:58)genglert a écrit : Bonjour,

je vous conseillerai de vous familiariser avec la documentation de Django ; au final beaucoup de questions que vous vous posez y trouveront une réponse, car au final les modèles, vues, formulaires, templates etc.. sont des outils Django avant tout.

Pour votre question précisément, Il y a plusieurs façons de faire mais la plus simple est de déclarer votre champ .

"blank" est un attribut des champ Django ; et comme il n'est pas possible d'ajouter ses propres attributs sans dériver des champs Django (ce qu'on veut éviter et garder du code le plus à la Django), et qu'on voulait pour indiquer certaines caractéristiques de champ en gardant une façon proche des attributs de base, on a mis en place ce système de tags. Les 4 tags disponibles actuellement ('clonable', 'viewable', 'enumerable', 'optional') sont décrits dans le tutoriel (section "Plus loin avec les modèles: les Tags").

Merci pour la réponse. En fait je connaissais les options mais c'est comment les activer qui me pose problème.

J'ai par exemple dans le fichier models/editors.py


Code :
...
contenu_article = TextField(_('Content of the article')).set_tags(optional=True, clonable=False)
....


Je relance une migration et rien se se fait


Code :
(pjt_creme2) V:\Python\pjt_creme2\creme2\creme\editors>python V:\Python\pjt_creme2\creme2\manage.py makemigrations editors
V:\Python\pjt_creme2\lib\site-packages\bleach\_vendor\html5lib\_trie\_base.py:3: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
 from collections import Mapping
No changes detected in app 'editors'


set_tags n'est pas pris en compte !!
  Répondre
#4
Citation :set_tags n'est pas pris en compte !!

Oui et c'est tout à fait normal ; les tags ajoutent juste de la sémantique coté python, et n'ont pas d'incidence sur la base de données, donc pas la peine de les faire prendre en compte à Django quand il calcule ses migrations. Si vous regardez les migrations des autres apps vous verrez que les tags ne s'y trouvent pas. Notez que plusieurs attributs de Django, même si pris en compte par le système de migrations, n'ont pas d'effets substantiels sur la base de données: editable, blank, verbose_name...

Je m'aperçois que le forum m'a mangé une partie de ma réponse précédente, qui devient incompréhensible :

Citation :Pour votre question précisément, Il y a plusieurs façons de faire mais la plus simple est de déclarer votre champ .

il manque "blank=True". Désolé.
  Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)