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

时间:2016-02-03 10:50:59

标签: python django datetime

轮询/ 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")

views.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'

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

1 个答案:

答案 0 :(得分:0)

default=datetime.now()是失败的部分,但即使你修复它,也是一个坏主意。它会将您的默认值设置为应用程序启动时的日期,因为datetime.now()只会被评估一次。您可能想要的是auto_add_now=True,如评论中所述。