【发布时间】:2015-10-29 08:43:59
【问题描述】:
这是我的创建方法
def create(cls, data):
try:
cls.format_date_only_element(data,'start_date')
cls.format_date_only_element(data,'end_date')
promotion = cls(**data)
promotion.save()
return True
except:
return False
在上面的代码中formate_date_only_element方法是
_date_only_format = '%Y-%m-%d'
def format_date_only_element(cls,data,date_field):
for r in data:
if date_field in r:
pdate = datetime.strptime(data[date_field], cls._date_only_format)
data[date_field]=pdate
break
我的创建处理程序是
def post(自我):
self__uploads = 无
form = forms.CreatePromotion(self.request.POST)
count = Promotion.all().count()
如果计数==0:
计数=1
form.display_order.choices = [(item+1, item+1) for item in range(count)]
image = self.get_uploads('image')
video = self.get_uploads('video')
如果 form.validate():
数据 = form.data
日志信息(数据)
upload_url = blobstore.create_upload_url('/admin/promotion/create')
尝试:
datetime.strptime(data['start_date'], '%Y-%m-%d')
datetime.strptime(data['end_date'], '%Y-%m-%d')
除了ValueError:
self.session.add_flash("日期格式不正确,应该是 YYYY-MM-DD",key='error')
return self.render_response("/admin/promotion/create.html", form=form, upload_url=upload_url)
supp_code=data['supplier_code']
supplier_obj=SupplierMaster.get_by_code(supp_code)
supp_code1=data['supplier_code']
supplier_obj1=Supplier.get_by_code(supp_code1)
if not supplier_obj and supplier_obj1 is None:
self.session.add_flash('Supplier code does not exist',key='error')
return self.render_response("/admin/promotion/create.html", form=form, upload_url=upload_url)
else:
is_video = bool(video)
is_image = bool(image)
if not is_image and not is_video:
self.session.add_flash("Please select a video or image",key='error')
return self.render_response("/admin/promotion/create.html", form=form, upload_url=upload_url)
else:
del data['video']
del data['image']
if is_video:
if video[0].content_type.startswith('video'):
log.info("is video")
data['video'] = video[0]
else:
log.info("is_video")
self.session.add_flash("Please select a video or image",key='error')
return self.redirect("/admin/promotion/create")
if is_image:
if image[0].content_type.startswith('image'):
log.info("is image")
data['image'] = image[0]
else:
log.info("is_image")
self.session.add_flash("Please select a video or image",key='error')
return self.redirect("/admin/promotion/create")
flag = Promotion.create(data)
if flag is True:
self.session.add_flash('Promotion created successfully!',key='success')
else:
self.session.add_flash("Error occured in creating Promotion",key='error')
return self.redirect("/admin/promotions")
else:
upload_url = blobstore.create_upload_url('/admin/promotion/create')
return self.render_response("/admin/promotion/create.html", form=form, upload_url=upload_url)
它的输出类似于(2015-10-29 00:00:00),但我只希望输出日期而不是日期时间,提前致谢
【问题讨论】:
-
你如何检查输出?您是否在任何地方将日期时间转换为字符串?
-
data[date_field] 的值是多少,例如是字符串。 “2015-10-22”然后代码为您提供正确的输出。如果要将日期时间对象转换为字符串,则应使用 datetime.strftime(datetime_object, "%Y-%m-%d"),这将为您提供所需的结果。
-
是的 prateek 它给出了“2015-10-22”,但是当涉及到创建方法时,如 ...flag = Promotion.create(data) 这里显示“2015-10-22 00-00 -00"
-
@Uday: 能否请您发布您的促销模型课程。我认为您已将日期字段提到为 DateTimeField 这就是它给出日期时间字符串的原因。
-
是的 prateek 我在模型中提到了 datetime 字段,但我使用的是 strip
标签: python