IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Django Python Discussion :

Django sauvegarde de données datetime


Sujet :

Django Python

  1. #1
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 50
    Par défaut Django sauvegarde de données datetime
    Bonjour
    Je lis les données dans une fonction python
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
            try:
                untitre = request.GET.get('title')
     
            except:
                untitre = None
     
            try:
                debut = float(request.GET.get('start'))
                debut = datetime.datetime.fromtimestamp(debut)
     
                print 'debut', debut
     
            except:
                debut = None
            try:
                lafin = float(request.GET.get('end'))
                lafin = datetime.datetime.fromtimestamp(lafin)
     
                print 'lafin', lafin
            except:
                lafin = None
    si j'affiche debut et la fin , j'ai :

    debut
    2015-11-02 00:00:00
    lafin
    2015-11-06 00:00:00

    mon model est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    class Event(models.Model):
        title = models.CharField(_('titre'), max_length=100)
        start = models.DateTimeField(_(u"début"), default=timezone.now)
        end = models.DateTimeField(_('fin'), default=timezone.now)
    .....
    je voudrai enregistrer dans ma base title start et end

    pour cela j'ecris dans la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    p = Event(title= untitre, start=debut, end=lafin)
    p.save()
    j'otiens alors l'erreur :

    RuntimeWarning: DateTimeField received a naive datetime (2015-11-02 00:00:00) while time zone support is active

    comment faire pour éviter cela ?

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 776
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 776
    Par défaut
    Salut,

    Citation Envoyé par peterpan3000 Voir le message
    j'otiens alors l'erreur :

    RuntimeWarning: DateTimeField received a naive datetime (2015-11-02 00:00:00) while time zone support is active

    comment faire pour éviter cela ?
    Probablement parce que USE_TZ est positionné à True dans votre setting.py... Cela a les implications décrites dans le chapitre Fuseaux horaires.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 50
    Par défaut
    oui mais mais si je met USE_TZ = False, mon programme marche plus

    je dois installer pytz ?

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 776
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 776
    Par défaut
    Citation Envoyé par peterpan3000 Voir le message
    oui mais mais si je met USE_TZ = False, mon programme marche plus

    je dois installer pytz ?
    C'est ce que recommande le document.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 50
    Par défaut
    j'ai installé pytz et j'ai mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    tz = pytz.timezone("Europe/Paris") 
    debut = datetime.datetime.fromtimestamp(debut, tz) 
    p = Event(start=debut..) 
    try:
        p.save()
    except:
        print 'erreur de sauvegarde'
    ca marche toujours pas
    j'affiche : erreur de sauvegarde

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 776
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 776
    Par défaut
    Citation Envoyé par peterpan3000 Voir le message
    j'affiche : erreur de sauvegarde
    Masquer le message d'erreur retourné par l'opération n'aide pas.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 50
    Par défaut
    quand je masque pas l'erreur, c'est pas mieux

    voila ce qui s'affiche :

    titre Atomisation TA6V (4-11-2015)
    categorie Tour Atomisation
    description blabla
    debut 2015-11-02 00:00:00+01:00
    lafin 2015-11-03 00:00:00+01:00
    [16/Feb/2016 06:15:26] "GET /events_drag/?title=Atomisation+TA6V+(4-11-2015)&sta
    rt=1446418800&end=1446505200&categorie=Tour+Atomisation&description=blabla HTTP/
    1.1" 200 2

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 776
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 776
    Par défaut
    Ce que vous me montrez n'est pas l'exception Python.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 50
    Par défaut
    j'ai reussi à afficher l'exception
    Il s'agit de :
    invalid literal for int() with base 10: 'Fermeture des gaines' (<type 'exception
    s.ValueError'>)

    dans mon model j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
     
    class Calendar(models.Model):
        name = models.CharField(_('name'), max_length=50)
        slug = models.SlugField(_('slug'), unique=True)
     
        def as_dict(self):
            return {
                'id': self.id,
                'name': self.name,
            }
     
    class Event(models.Model):
        title = models.CharField(_('titre'), max_length=100)
        start = models.DateTimeField(_(u"début"), default=timezone.now)
        end = models.DateTimeField(_('fin'), default=timezone.now)
        is_cancelled = models.BooleanField(_('Annulation?'), default=False, blank=True)
        calendar = models.ForeignKey(Calendar, verbose_name=_('machine'))
    et dans view

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    def eventsdrag(request):
     
        try:
     
            try:
                untitre = request.GET.get('title')
                macategorie = request.GET.get('calendar')
    .....
     
           p = Event(title= untitre, start=debut, end=lafin, calendar_id =macategorie)
     
           try:
               p.save()
            except  Exception as e:      
               print '%s (%s)' % (e.message, type(e))
    quelle est cette erreur pour calendar ? C'est un problème de format ?

  10. #10
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 776
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 776
    Par défaut
    Citation Envoyé par peterpan3000 Voir le message
    j'ai reussi à afficher l'exception
    Il s'agit de :
    invalid literal for int() with base 10: 'Fermeture des gaines' (<type 'exceptions.ValueError'>)
    Ben:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> int('fermeture des gaines')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: invalid literal for int() with base 10: 'fermeture des gaines'
    >>>
    donc çà essaye de construire un entier à partir de "fermeture des gaines".
    à vous de vous ce que vous avez mis dans les différents champs.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  11. #11
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 50
    Par défaut
    calendar_id est en rapport avec l'identifiant

    si j'ecris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    events = Event.objects.all()
     
    for event in events:
    lacat=event.calendar_id
    cela va m'afficher tous les id relatifs a calendar

    quand j'ecris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     p = Event(title= untitre, start=debut, end=lafin, calendar_id= macategorie
     
     print 'categorie', p.calendar_id
    je vais bien afficher categorie fermeture des gaines

    mais si j'ecris

    alors je declenche l'erreur : invalid literal for int() with base 10

    c'est pas très clair

    c'est en rapport avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class Calendar(models.Model):
        name = models.CharField(_('name'), max_length=50)
        slug = models.SlugField(_('slug'), unique=True)
     
        def as_dict(self):
            return {
                'id': self.id,
                'name': self.name,

  12. #12
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 776
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 776
    Par défaut
    Citation Envoyé par peterpan3000 Voir le message
    calendar_id est en rapport avec l'identifiant
    C'est l'identifiant du Calendar associé via la FK déclarée par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class Event(models.Model):
        ...
        calendar = models.ForeignKey(Calendar, verbose_name=_('machine'))
    Il faut aller chercher le record correspondant à ce nom dans la BDD.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. [VB.NET] Comment sauvegarder des données ?
    Par Aspic dans le forum VB.NET
    Réponses: 14
    Dernier message: 15/07/2007, 15h47
  2. Sauvegarde de données dans fichier csv
    Par issou dans le forum C
    Réponses: 1
    Dernier message: 22/12/2005, 08h36
  3. [debutant][XML] sauvegarde de donnée provenant de textbox
    Par moust dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 28/06/2005, 15h22
  4. sauvegarde des données des tables
    Par tomm dans le forum Bases de données
    Réponses: 18
    Dernier message: 27/04/2004, 21h29
  5. [Kylix] Sauvegarde de donnée utilisateur....
    Par Eclypse dans le forum EDI
    Réponses: 1
    Dernier message: 11/05/2002, 17h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo