我如何从 views.py 编辑/更改模型字段的值 [英] How can i Edit/Change the value of a model field from views.py

查看:19
本文介绍了我如何从 views.py 编辑/更改模型字段的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好.我想知道如何通过定义的会话列表中的项目数来更改模型字段的值

Good-day everyone. I want to know how i can change the value of a model-field through the number of items in a defined sessions list

我已经做了一个配置文件模型(这是用户模型的 OneToOne 字段)在我的models.py中具有如下所示的级别"字段;

I have already made a profile model (which is OneToOne Field to the user model) with a 'level' field as shown below in my models.py;

在 view.py 中,我创建了一个名为answer_list"的会话,它是一个存储用户提供的所有正确答案的列表.

And in view.py, I have created a session called 'answer_list' which is a list that stores all correct answers provided by the user.

class UserProfile(models.Model):

    user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='profile')

    level = models.CharField(max_length=1, choices=[('Newbie', 'N'), ('Regular', 'R'), ('Expert', 'E')], default='Newbie')

views.py

def index(request):

     if 'answer_list' in request.session: #answer_list has been created previously #request.session['answer_list'] = []

        ok = request.session['answer_list']
        print (ok) #just to check the content of 'answer_list' which is correct

            if len(ok) == 4:

                user=request.user

                user.profile.level = 'R'
                user.profile.save()


    return render(request, 'index.html', {})

一旦会话answer_list"中的项目数达到 4,我希望 user.profile.level 的值从新手"更改为常规".请问我该怎么做

I want the value of the user.profile.level to change from 'Newbie' to 'Regular' once the number of items in the session 'answer_list' gets to 4. Please how can i go about it

推荐答案

试试这个:

UserProfile.objects.filter(user=request.user).update(level='R')

这篇关于我如何从 views.py 编辑/更改模型字段的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆