代码之家  ›  专栏  ›  技术社区  ›  Codejoy

清除日期字段从Ajax调用返回到Django视图

  •  1
  • Codejoy  · 技术社区  · 6 年前

    edit:my def form_无效的'class providerupdateview(updateview):

      def form_invalid(self, form):
        print("form is invalid")
        print(form.errors)
        return HttpResponse("form is invalid.. this is just an HttpResponse object") 
    

    我可能会打开第二个问题来弄清楚为什么表单上没有呈现这些内容,但有些“必须填写此字段”可能与清晰的表单有关,不确定我是否编写了此部分,因此必须查看它:/

    我在Ajax调用的数据字段中有一个日期字段。我可以在视图中很好地获取数据。

    dateJ = request.GET.get('date_joined_group')    
    

    这很好,但当我试着把它扔进我的模型时,它每次都会死。我需要“清理”数据,当我做标准的GET POST OPS工作时,我知道我的表单,并自动完成这项工作。当不使用表单工具而是使用Ajax调用时,是否有一种方法可以调用这个automagic?

    我试过这个:

           dateObj = datetime.datetime.strptime(str(dateJ), '%m-%d-%Y')
    

    然后在我的模型中:

    grpProvInfo.date_joined_group = dateObj    
    grpProvInfo.save()
    

    这很有效,直到我在2009年4月29日的表格上使用日期选择器

    所以斜线破坏了我的“光滑修复”,这是一个更简单的方法,然后试图解释所有的可能性,只是不确定如何从我的python中的ajax调用的一个小def方法中调用它。

    1 回复  |  直到 6 年前
        1
  •  2
  •   rchurch4    6 年前

    所以有几个不同的Python库可以在很大程度上帮助您。这一个, dateparser ,允许您输入尽可能多的不同格式以进行分析,并返回一个日期时间对象。这可以用斜线来解决你的问题。另一条建议是,无论输入方式如何,始终以相同的格式为您的日期提供服务。如果使用django表单和日期字段,您将自动获得(有效日期字符串的)验证,并且与dateparser结合使用可以安全地分析任何日期字符串。

    为了简单起见,您应该能够更改日期选择器的默认格式。但这并不是解决问题的真正方法