ArrayField 没有更新?

我正在尝试检查课程是否已完成(通过检查该页面是否已在登录帐户上访问过一次)。


我一直在尝试检查该页面是否已被访问。如果没有,则应在访问页面数组中添加该 ID。


我正在检查所有可能的情况(或至少是我能想到的情况),当我必须这样做时,我将另一个 lection.id 添加到访问的课程数组中。每次打印此数组后,我看到添加了课程 ID,但未添加到数据库中。(如果我检查数据库或更改页面,课程 ID 就会消失)


视图.py


from django.shortcuts import render

from django.shortcuts import get_object_or_404

from .models import Lectie


def lectii(req):

    lectii = Lectie.objects.all().order_by("id")

    if req.user.is_authenticated:

        if req.user.profile.lectiiRezolvate == None:

            lectiiRezolvate=[]

        else:

            lectiiRezolvate = req.user.profile.lectiiRezolvate

    else:

        lectiiRezolvate=[]

    context = {

        'lectii': lectii,

        'lectiiRezolvate': lectiiRezolvate

    }

    print(lectiiRezolvate)

    return render(req, '../templates/pagini/lectii-selector.html', context)


def lectie(req, lectie_id):

    if req.user.is_authenticated:

        if req.user.profile.lectiiRezolvate == None:

            req.user.profile.lectiiRezolvate.append(lectie_id)

            user.profile.save()

            print(req.user.profile.lectiiRezolvate)

        else:

            if lectie_id in req.user.profile.lectiiRezolvate:

                pass

            else:

                req.user.profile.lectiiRezolvate.append(lectie_id)

                print(req.user.profile.lectiiRezolvate)

    else:

        pass        

    lectie2 = get_object_or_404(Lectie, pk=lectie_id)

    lectiePDF = 'lectii/lectia-{}.pdf'.format(lectie2)

    context = {

        'lectiePDF': lectiePDF,

        'lectie2': lectie2,

    }

    return render(req, '../templates/pagini/lectii.html', context)

网址.py


from django.urls import path

from . import views


urlpatterns = [

    path('', views.lectii, name="lectii"),

    path('<int:lectie_id>', views.lectie, name="lectie")

]


lectii-selector.html

我觉得我没有正确地添加到数据库中,我错过了一些东西。我试图通过阅读 django 文档来解决它,但我没有发现任何有用的东西。


所以我想个人资料没有更新,我做错了什么。我怎样才能让它工作?


四季花海
浏览 155回答 1
1回答

尚方宝剑之说

如果数组字段以前为空,则仅保存配置文件;附加新 ID 后不保存它。(另请注意,如果您将 a 添加default=list到字段定义,则可以避免检查 None 的需要。)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python