Как я могу изменить / изменить значение поля модели из views.py - PullRequest
0 голосов
/ 29 января 2019

Добрый день всем.Я хочу знать, как я могу изменить значение поля модели по количеству элементов в определенном списке сеансов

Я уже создал модель профиля (то есть поле OneToOne для пользовательской модели) споле 'level', как показано ниже в моем models.py;

И в view.py я создал сеанс под названием 'answer_list', представляющий собой список, в котором хранятся все правильные ответы, предоставленные пользователем.

models.py

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', {})

Я хочу, чтобы значение user.profile.level изменялось с 'Newbie' на 'Regular' один разколичество элементов в сеансе 'answer_list' становится равным 4. Пожалуйста, как мне это сделать

1 Ответ

0 голосов
/ 29 января 2019

попробуй

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