Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 日期错误:参数必须是字符串或数字,而不是';datetime.datetime';_Python_Django_Datetime - Fatal编程技术网

Python 日期错误:参数必须是字符串或数字,而不是';datetime.datetime';

Python 日期错误:参数必须是字符串或数字,而不是';datetime.datetime';,python,django,datetime,Python,Django,Datetime,polls/models.py: class Message(models.Model): auteur = models.ForeignKey(Personne) contenu = models.TextField() pub_date = models.DateTimeField(default=datetime.now(), blank=True, verbose_name="Date de publication") 视图。py: def welcome(re

polls/models.py:

class Message(models.Model):
    auteur = models.ForeignKey(Personne)
    contenu = models.TextField()
    pub_date = models.DateTimeField(default=datetime.now(), blank=True, verbose_name="Date de publication")
视图。py:

def welcome(request):
    logged_user = get_logged_user_from_request(request)
    if not logged_user is None:
        if 'newMessage' in request.GET and request.GET['newMessage'] != '':
            newMessage = Message(auteur=logged_user, contenu=request.GET['newMessage'], pub_date =  datetime.now())
            newMessage.save()
        friendMessages = Message.objects.filter(auteur__amis=logged_user).order_by('-pub_date')
        return render_to_response('polls/home.html', {'logged_user': logged_user, 'friendMessages': friendMessages})
    else:
        return HttpResponseRedirect('/login')
当我跑步时:

python manage.py migrate 
我得到了这个回溯:

TypeError:int()参数必须是字符串、类似对象的字节或数字,而不是“datetime.datetime”


我现在不知道为什么会出现这个错误。

default=datetime.now()
是失败的部分,但即使你修复了它,这也是个坏主意。它会将您的默认值设置为应用程序启动时的任何日期,因为datetime.now()将只计算一次。您可能想要的是注释中提到的
auto\u add\u now=True

您是否尝试过
auto\u add\u now
pub\u date=models.datetime字段(auto\u add\u now=True,blank=True,verbose\u name=“date de publication”)
我在auto\u add\u now=True中也有同样的错误。您可以在代码中显示如何导入日期时间吗?另一个问题,您是否更改了模型上的某些内容,makemigrations的输出是什么?删除视图代码,它似乎与您的问题无关。无关:不要在服务器中使用
datetime.now()
(服务器恰好使用的本地时区与您的用户无关,天真的本地时间可能不明确)。现在改用
django.utils.timezone.now
)。确保理解Python中的
f
(函数对象本身——也可以将其作为参数传递)和
f()
(返回特定结果的函数调用)之间的区别。