I Avait créé un formulaire détaillé dans Django ayant des champs obligatoires. Je veux enregistrer la page comme option de brouillon sans exception si les champs obligatoires ne sont pas définis cette heure. Comment puis-je le faire?Comment enregistrer la page en tant que brouillon
Répondre
Premier jeu requis = Faux pour les champs qui ne doivent pas être définis si vous enregistrez en tant que brouillon. Ensuite, à votre formulaire, ajoutez un champ comme 'save_as_draft' qui est un booléen. Vous avez maintenant besoin d'une méthode pour valider ces champs en fonction de l'état du champ save_as_draft (que l'utilisateur ait coché ou non ce champ). Vous pouvez utiliser une telle méthode:
def is_provided(self, field):
value = self.cleaned_data.get(field, None)
if value == None or value == '':
self._errors[field] = ErrorList([u'This field is required.'])
if field in self.cleaned_data:
del self.cleaned_data[field]
Ajouter cette méthode à votre formulaire et l'utiliser dans la méthode propre de formulaire pour valider vos champs. Cela ressemblerait à ceci:
def clean(self):
draft = self.cleaned_data.get('save_as_draft', False)
if not draft:
# User doesn't save a draft so we need to check if required fields are provided
req_fields = ['field1', 'field2', 'field3']
for f in req_field:
self.is_provided(f)
return self.cleaned_data
Si l'utilisateur préfère bouton save_as_draft au lieu de case à cocher, vous devrez modifier votre point de vue et de passer un paramètre au constructeur de votre formulaire selon que l'utilisateur a cliqué le bouton save_as_draft ou tout simplement le bouton Enregistrer. Dans Constructeur de formulaire, enregistrez cet état aa self_ave_as_draft et utilisez-le dans la méthode Form.clean pour vérifier si vous enregistrez le brouillon ou non.
Salutations, Lukasz
- 1. Comment enregistrer un e-mail en tant que brouillon dans Outlook 2003 par programmation?
- 2. Enregistrer la page Web en tant que document Word? (VB.NET)
- 3. enregistrer la copie de la page existante comme brouillon dans wordpress?
- 4. Comment enregistrer toute la toile défilable en tant que Png
- 5. Enregistrer la partie sélectionnée de la page Web en tant que fichier texte en utilisant Javascript
- 6. Comment enregistrer une vue rendue en tant que fichier statique?
- 7. Enregistrer HICON en tant que png
- 8. Enregistrer automatiquement l'e-mail en tant que brouillon comme une fonctionnalité gmail Utilisation de Asp.Net MVC jQuery
- 9. Comment enregistrer une page Web en tant que fichier image en utilisant PHP?
- 10. Enregistrer la chaîne formatée en tant que XAML
- 11. Comment enregistrer une UIImage en tant que BMP?
- 12. Comment enregistrer un NSMutableArray d'images en tant que fichier Photoshop
- 13. enregistrer le fichier en tant que lob ou en tant que fichier OS?
- 14. enregistrer un cfdocument en tant que fichier Excel
- 15. Comment enregistrer Bitmap en tant qu'icône?
- 16. enregistrer en tant que boîte de dialogue dans asp.net
- 17. Enregistrer le téléphone en tant que HID (souris)
- 18. Comment enregistrer l'écran et enregistrer en tant qu'animation gif?
- 19. Comment pouvez-vous enregistrer la sortie de la fenêtre Cocos2D en tant que vidéo?
- 20. widget tableau flash qui peut enregistrer en tant que PDF
- 21. Envoyer un e-mail/enregistrer brouillon de Django admin
- 22. Enregistrer Dojox GFX Canvas en tant que SVG
- 23. Symfony - télécharger des images et enregistrer en tant que blob
- 24. Enregistrer les rapports RDLC en tant que PDF par programme
- 25. Enregistrement de la page Web en tant que fichier MHTM
- 26. Comment empêcher la boîte de dialogue 'Enregistrer (image) en tant que' sur Ctrl + clic dans Opera
- 27. Enregistrer le dessin en tant qu'image
- 28. Comment enregistrer une mise en page Tlistview
- 29. iPhone - enregistrer l'affichage actuel en tant qu'image
- 30. Comment enregistrer un horodatage MySQL en tant que chaîne au lieu d'un DateTime en utilisant AutoMapper?
En utilisant cette approche, vous devrez faire tous les champs du modèle annulable, ce qui est bon –