from django.shortcuts import render
from django.http import HttpResponse
from django.core.paginator import Paginator
from django.db.models import Q
import datetime
# Create your views here.
from myadmin.models import Corporation,Building
.......
def update(request,cid):
'''执行信息编辑'''
try:
ob = Corporation.objects.get(id=cid)
ob.name = request.POST['name']
ob.status = request.POST['status']
ob.legal_rep = request.POST['legal_rep']
ob.reg_capital = request.POST['reg_capital']
ob.create_at = datetime.POST['create_at'].strptime("%Y/%m/%d")
ob.update_at = datetime.now().strftime("%Y-%m-%d")
ob.contact_number = request.POST['contact_number']
ob.email = request.POST['email']
ob.entrt_type = request.POST['entrt_type']
ob.web = request.POST['web']
ob.address = request.POST['address']
ob.nat_of_bus = request.POST['nat_of_bus']
ob.building_id = request.POST['building_id']
ob.save()
context = {'info':"修改成功!"}
except Exception as err:
print(err)
context = {'info':"修改失败!"}
return render(request,"myadmin/info.html",context)
如图所示:
该回答引用GPTᴼᴾᴱᴺᴬᴵ
在代码 datetime.POST['create_at'].strptime("%Y/%m/%d") 中,datetime 是一个模块,而模块是没有 POST 属性的,因此出现了 module 'datetime' has no attribute 'POST' 的错误。如果要获取表单中的数据,需要通过 request.POST 进行获取。
同时,在将字符串转换为 datetime 类型的过程中,可以使用 datetime.datetime.strptime() 方法。该方法接收两个参数,第一个参数是需要转换的字符串,第二个参数是字符串的格式。在代码中可以这样写:
create_at_str = request.POST['create_at']
create_at = datetime.datetime.strptime(create_at_str, "%Y/%m/%d")
ob.create_at = create_at
这样可以将表单中的字符串转换为 datetime 类型,并将其赋值给 ob.create_at。
参考GPT和自己的思路,在 Django 中,POST 是一个字典,它包含在请求中发送的所有表单数据。但是 datetime 模块中并不存在 POST 属性,因此会出现 'module 'datetime' has no attribute 'POST' 错误。
如果您想在修改页面显示当前的录入时间信息,可以使用 Python 的 datetime 模块和 strftime 函数。将下面的代码行:
ob.create_at = datetime.POST['create_at'].strptime("%Y/%m/%d")
替换为以下代码行:
ob.create_at = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
此代码将当前日期和时间格式化为字符串,并将其赋给 create_at 属性。
如果您需要从用户提交的表单数据中获取日期和时间,并将其转换为 datetime 对象,则可以使用以下代码行:
ob.create_at = datetime.datetime.strptime(request.POST['create_at'], "%Y/%m/%d %H:%M:%S")
此代码将从表单数据中获取的日期和时间字符串转换为 datetime 对象,并将其赋给 create_at 属性。
请注意,在将日期时间字符串转换为 datetime 对象时,您需要使用与字符串格式相对应的格式指令(如上例中的 "%Y/%m/%d %H:%M:%S")。
datetime.POST 改成 request.POST
module 'datetime' has no attribute 'POST' 表示 datatime 没有 POST 属性。
以上问题很显然,因为 datatime
是 python 封装的一个库,它里边是和时间相关的一些函数及变量
如果要自动获取录入时的时间,应用以下代码ob.create_at = datetime.now().strftime("%Y-%m-%d")
如果前端提交时提供了 create_at 字段的时间值,则应使用
ob.create_at = request.POST['create_at'].strptime("%Y/%m/%d")
需要注意的是前端提交的这个值应能转化成 datatime 类型,然后在对其格式化,
当然,如果前端提交的就是格式化好的,则使用如下代码:
ob.create_at = request.POST['create_at']