Projet

Général

Profil

Development #15423

dans les URLField, accepter des URL à variables

Ajouté par Frédéric Péters il y a environ 7 ans. Mis à jour il y a presque 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
14 mars 2017
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

JsonCell, LinkCell, FeedCell, etc. il y a un appel à get_templated_url() pour gérer la présence de variables dans l'URL (ex: [foobar_url]/plop/) mais comme c'est un URLField le widget associé se trouve vérifier le format de données et râle en demandant une URL valide.


Fichiers


Demandes liées

Dupliqué par Combo - Bug #24402: cellule json : possibilité de placer un gabarit comme URLRejeté10 juin 2018

Actions

Révisions associées

Révision a72c25dd (diff)
Ajouté par Frédéric Péters il y a presque 5 ans

misc: allow template URLs in feed and json cells (#15423)

Historique

#1

Mis à jour par Frédéric Péters il y a presque 5 ans

  • Dupliqué par Bug #24402: cellule json : possibilité de placer un gabarit comme URL ajouté
#2

Mis à jour par Frédéric Péters il y a presque 5 ans

C'est en fait plutôt pas terrible parce qu'il y a validation au niveau du formulaire (forms.fields) mais il y a re-validation pour la même chose ensuite, au niveau du modèle.

Bref, patch qui passe FeedCell et JsonCell à CharField pour le champ URL, mais qui lui adjoint un champ spécifique, qui accepte un chaine contenant {{ ou {% sans rien dire, et vérifie si c'est bien une URL sinon.

Je ne fais pas passer le LinkCell par ce champ parce qu'on a des LinkCell qui peuvent contenir une URL avec uniquement le chemin, genre /login/.

En passant ça ajoute manager_form_factory_kwargs qui pourra sans doute servir à d'autres occasions.

#3

Mis à jour par Thomas Noël il y a presque 5 ans

Je ne comprends pas les super dans le to_python de TemplatableURLField, parce que finalement ça ne va jamais appeler celui de forms.URLField ...?

Et je ne comprends pas le CharField dans les modèles : ne voudrait-on pas justement utiliser TemplatableURLField ?

#4

Mis à jour par Frédéric Péters il y a presque 5 ans

Je ne comprends pas les super dans le to_python de TemplatableURLField, parce que finalement ça ne va jamais appeler celui de forms.URLField ...?

Si, en dernière ligne, return super(forms.URLField, self).to_python(value), une fois vérifié qu'il n'y a pas de {{ ou {%.

Et je ne comprends pas le CharField dans les modèles : ne voudrait-on pas justement utiliser TemplatableURLField ?

TemplatableURLField est un forms.Field pas un models.Field (cela dit sans vérifier le vrai nom des classes).

#5

Mis à jour par Thomas Noël il y a presque 5 ans

Frédéric Péters a écrit :

Je ne comprends pas les super dans le to_python de TemplatableURLField, parce que finalement ça ne va jamais appeler celui de forms.URLField ...?

Si, en dernière ligne, return super(forms.URLField, self).to_python(value), une fois vérifié qu'il n'y a pas de {{ ou {%.

Mais heu... c'est pas plutôt super(TemplatableURLField, self).to_python(value) que tu veux faire ?

Et je ne comprends pas le CharField dans les modèles : ne voudrait-on pas justement utiliser TemplatableURLField ?

TemplatableURLField est un forms.Field pas un models.Field (cela dit sans vérifier le vrai nom des classes).

Arf. Oublie moi. Et donc pour le coup, ça serait pas plus simple de faire un TemplatableURLField(django.db.models.URLField) qui ne jouera que sur le validateur ?

#6

Mis à jour par Thomas Noël il y a presque 5 ans

Thomas Noël a écrit :

(...) Et donc pour le coup, ça serait pas plus simple de faire un TemplatableURLField(django.db.models.URLField) qui ne jouera que sur le validateur ?

Fatigue, je viens de relire ton premier commentaire, il faut de toute façon avoir un forms.URLField, bref, re-oublie moi sur ça.

#8

Mis à jour par Thomas Noël il y a presque 5 ans

  • Statut changé de Solution proposée à Solution validée
#9

Mis à jour par Frédéric Péters il y a presque 5 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit a2fc38261cce7619089cbb79c24c5b2082a42fbe
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Fri Jul 5 13:58:01 2019 +0200

    admin: format file types on a single line (#34561)
#10

Mis à jour par Frédéric Péters il y a presque 5 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF