Django : afficher un champ spécifique dans un formulaire
Bonjour,
L'utilisateur peut choisir une couleur favorite dans le UserCreationForm :
class ExChanger(AbstractUser):
email = models.EmailField(unique=True)
type = models.CharField(max_length=10, verbose_name="Sexe", choices=TYPE_USER)
size = models.CharField(verbose_name="Taille", choices=SIZES, max_length=10, blank=True)
favorite_color = models.ForeignKey(to=Color, on_delete=models.SET_NULL, verbose_name="Couleur favorite",
null=True, blank=True)
class Color(models.Model):
name = models.CharField(verbose_name="Nom", max_length=20)
hexa = models.CharField(verbose_name="Hex", max_length=7)
Je en veux pas que l'utilisateur ait le champ hexa qui apparait mais que le champ name dans la liste de choix du formulaire.
Dans mon formulaire j'ai essayé de modifier le champ du formulaire avec un to_field_name mais ça n'a pas fonctionné.
J'ai vu sr internet que certains surchargent init du ModelForm mais ça me parait bizarre.
Qu'est-ce qui est le mieux svp ?
Merci d'avance
Salut Gab !
Quand tu crées ton formulaire, tu peux spécifier les champs que tu souhaites afficher dans le fields :
https://docs.djangoproject.com/fr/4.2/topics/forms/modelforms/
class ColorForm(ModelForm):
class Meta:
model = Color
fields = ("name",)
excuse moi je nai pas bien expliqué.
du coup ça pas de soucis. en fait cest mon UserCreationForm. Le champ favorite_color est une ForeignKey.
Quand l'utilisateur veut s'inscrire et qu'il choisit une couleur ça affiche les champs name et hexa de la foreign key.
mais je viens de tilter que j'avais mis le self.hexa dans ma méthode str... c'était juste ça au final le soucis... Dsl pour la question inutile
en fin de journée je n'avais plus les idées claires je crois 🤣
je peux clôturer ?
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte