Как мне прочитать определенные c данные для указанного c пользователя из базы данных по python django - PullRequest
0 голосов
/ 14 июля 2020

Например, в моей базе данных есть таблица с именем BlackList, которая выглядит так: введите описание изображения здесь

Модели таблицы:

class BlackList(models.Model):
    name = models.CharField(max_length=1000, null=True, blank=True)
    flag1 = models.BooleanField(default=False)
    flag2 = models.BooleanField(default=False)
   

Я хочу сделать что-то вроде этого:

if request.method == "POST":
    username = request.POST.get('username')  # Get username input first
    password = request.POST.get('password')
    user = authenticate(request, username=username, password=password)
    # BLname = Read the username from the table
    # BLflag1 = read the Flag1 for the user
    # BLflag2 = read the Flag2 for the user
    if BLflag1 == True and BLflag2 == True:  
        something will happen 
    elif BLflag1 == True and BLflag2 == False:  
        something will happen
    else:
        # set the Flag1 and Flag2 of this user to True. 

Итак, мои вопросы

  1. Как читать указанные c данные для определенного c пользователя, например, если пользователь 'aaa' пытается войти в систему, приложение будет читать Flag1, если aaa имеет значение True, а Flag2 для aaa - True.
  2. Как установить флаг для определенного c пользователя, например, если пользователь 'bbb' пытается войти в систему, приложение в конце установит для Flag1 и Flag2 значение True.

1 Ответ

1 голос
/ 14 июля 2020

Вы должны сначала проверить, аутентифицирован ли пользователь.

user = authenticate(request, username=username, password=password)
if user is not None:
    BLname = user.username
    BLflag1 = user.Flag1
    BLflag2 = user.Flag2
    if BLflag1 and BLflag2:  # since the values are boolean, you don't need to compare them  
        # something will happen 
    elif BLflag1 and not BLflag2:  
        # something will happen
    else:
        user.Flag1 = True
        user.Flag2 = True
        user.save()
else:
    # do something for unauthenticated users
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...