更新页数时会话密钥错误?

Session key error while updating the page counts?

我在这里更新主页视图中的页数,但这段代码无法正常工作。

它给出了 IntegrityError 说法 NOT NULL constraint failed: mysite_pagevisit.session

可能是什么原因?我该如何解决?

class HomePageView(View):
    def get(self, request):
        if not PageVisit.objects.filter(session=request.session.session_key):
            PageVisit.objects.create(ip=request.META['REMOTE_ADDR'], session=request.session.session_key)

设置

SESSION_COOKIE_AGE = 5  #for test

型号

class PageVisit(models.Model):
    ip = models.GenericIPAddressField()
    session = models.CharField(max_length=255)
    created = models.DateTimeField(auto_now_add=True)

    @property
    def total_visits(self):
        return PageVisit.objects.count()

您的会话密钥在此处 None。所以如果是None,你需要先create一个。例如:

class HomePageView(View):
    def get(self, request):
        if not request.session.session_key:
            request.session.create()
        
        if not PageVisit.objects.filter(session=request.session.session_key):