SqlAlchemy nicht akzeptieren datetime.datetime.jetzt den Wert in einem DateTime-Spalte

Sollte ich zuerst erwähnen, dass ich mit SqlAlchemy durch Flask-SqlAlchemy. Ich glaube nicht, dass dies wirkt sich auf das Problem, aber wenn es funktioniert, lassen Sie es mich bitte wissen.

Hier den relevanten Teil der Fehlermeldung, die ich erhalte beim ausführen des create_all Funktion in SqlAlchemy

InterfaceError: (InterfaceError) Error binding parameter 4 - probably unsupported type. u'INSERT INTO podcasts (feed_url, title, url, last_updated, feed_data) VALUES (?, ?, ?, ?, ?)' (u'http://example.com/feed', u'Podcast Show Title', u'http://example.com', '2012-04-17 20:28:49.117000'

Hier ist mein Modell:

class Podcast(db.Model):
    import datetime
    __tablename__ = 'podcasts'
    id = db.Column(db.Integer, primary_key=True)
    feed_url = db.Column(db.String(150), unique=True)
    title = db.Column(db.String(200))
    url = db.Column(db.String(150))
    last_updated = db.Column(db.DateTime, default=datetime.datetime.now)
    feed_data = db.Column(db.Text)

    def __init__(self, feed_url):
        import feedparser

        self.feed_url = feed_url
        self.feed_data = feedparser.parse(self.feed_url)
        self.title = self.feed_data['feed']['title']
        self.url = self.feed_data['feed']['link']

Kann mir jemand sagen wie bekomme ich diese zu arbeiten? Ich hab auch schon versucht das folgende Modell, der aber auch nicht funktioniert. Gleichen Fehler.

class Podcast(db.Model):
    import datetime
    __tablename__ = 'podcasts'
    id = db.Column(db.Integer, primary_key=True)
    feed_url = db.Column(db.String(150), unique=True)
    title = db.Column(db.String(200))
    url = db.Column(db.String(150))
    last_updated = db.Column(db.DateTime)
    feed_data = db.Column(db.Text)

    def __init__(self, feed_url):
        import feedparser

        self.feed_url = feed_url
        self.feed_data = feedparser.parse(self.feed_url)
        self.last_updated = datetime.datetime.now()
        self.title = self.feed_data['feed']['title']
        self.url = self.feed_data['feed']['link']
Sind Sie sicher, dass die last_updated Spalte ist das problem? Könnte es sein, das feed_data Spalte (die Spalte 4, wenn Sie anfangen zu zählen ab null)? Nachdem alle, die Sie versuchen, ein Wörterbuch (das Ergebnis feedparser.parse(...) in eine Spalte des Typs Text.
gut, das hat nichts mit der Frage zu tun, könnten Sie bitte lassen Sie mich wissen, wo, um loszulegen, wenn ich will, eine einfache ORM-layout.
Ich denke, Sie sollten mit sqlalchemy.func.now() anstelle von datetime.datetime.jetzt()

InformationsquelleAutor Kylee | 2012-04-18

Schreibe einen Kommentar