Je ne peux pas sembler comprendre comment gérer la situation suivante correctement dans Django:Comment représenter deux champs de modèle en tant que champ de formulaire dans Django?
J'ai une plage de dates dans un modèle, que je stocke sous forme de deux champs distincts, date_start
et date_end
:
start_date = models.DateTimeField()
end_date = models.DateTimeField()
Dans la forme pour ce modèle, je veux représenter cela comme un champ, avec une étiquette:
timespan = forms.Field(widget=widgets.SelectDateRangeWidget(), label="Date Range")
comme il est maintenant, je poste terminé MultiWidget pour créer le SelectDateRangeWidget
:
class SelectDateRangeWidget(forms.MultiWidget):
...
qui intègre alors deux Date
widgets. Je veux utiliser cela, mais ensuite le nettoyer dans deux champs de modèle distincts, et également préserver la capacité de charger les données initiales dans le champ de formulaire. Est la seule façon de définir manuellement initial
à la valeur de ces deux champs à chaque fois, peut-être dans la fonction __init__
du formulaire, et également manuellement le nettoyer dans ces deux champs de modèle, ou est-il un moyen plus propre (pour ainsi dire) fais ça?
Je ne vois pas quel est le problème: extraire vos deux dates, et les stocker dans le modèle. – Marcin
@marcin: Comment définir la valeur 'initial' à la valeur des deux champs du modèle d'une manière logique et sans modifier la fonction __init__ du formulaire? Est-ce que je manque juste quelque chose d'évident? –
Quel est le problème avec la définition du paramètre 'initial' à chaque champ? – Marcin