将日期从 wxdatepickerctrl 插入数据库
self.dateEntry = wx.GenericDatePickerCtrl(self, -1, size=(120,20), pos=(90,185),
style = wx.TAB_TRAVERSAL
| wx.DP_DROPDOWN
| wx.DP_SHOWCENTURY
| wx.DP_ALLOWNONE )
self.dateEntry.Bind(wx.EVT_DATE_CHANGED, self.OnGetDate)
...
def OnGetDate(self, evt):
date = evt.GetDate()
return date
...
def AddEntry(self, evt):
...
cur.execute("insert into entries (ref_no, entry_date, description) values (%s, %s, %s)", (refNo, datetime.date(self.OnGetDate), desc,))
所以它说 TypeError: an integer is required,我知道导致错误的问题是 datetime.date(self.OnGetDate),日期的格式为 datetime.date(yyyy, mm, dd),而 datepickerctrl 的格式为 (mm/日/年)。我尝试摆脱 datetime.date,但出现另一个错误,提示 psycopg2.ProgrammingError: can't adjustment type 'instancemethod',我知道它是这样说的,因为我无法调用要插入数据库的方法。所以我的问题是还有另一种方法,获取小部件上的日期并将其放入数据库中。无论哪种方式我都遇到问题。或者我做错事了。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
该小部件返回一个 wx.DateTime 对象,因此您需要将其转换为数据库可以理解的对象,或者可能是 Python 日期时间对象。这是关于如何执行后者的线程: http://wxpython-users.1045709.n5.nabble.com/How-to-convert-wx-DateTime-to-python-datetime-td2352965.html
That widget returns a wx.DateTime object, so you'll need to convert it to something that your database understands or maybe the Python datetime object. Here's a thread on how to do the latter: http://wxpython-users.1045709.n5.nabble.com/How-to-convert-wx-DateTime-to-python-datetime-td2352965.html