Зарегистрированный пользователь имеет другой идентификатор, чем у того же пользователя в базе данных django - PullRequest
0 голосов
/ 30 марта 2020

Я пытаюсь создать приложение todo note, используя базу данных sqlite django, когда пользователь пытается зарегистрироваться в моем приложении, ему назначается идентификатор по умолчанию django, но когда я пытаюсь получить / получить информацию об этом пользователе, используя request.user.id, он возвращает идентификатор, отличный от идентификатора фактического идентификатора. Например, пользователь зарегистрирован на моем сайте под именем «honey», django sqlite показывает его идентификатор как «12», но когда я пытаюсь получить его по request.user.id, тогда его запрос не найден * ошибка 1004 *.

views.py

def newNotePage(request):
    form = NewNote
    user = request.user
    print(user)
    #prints 'honey'
    print(user.id)
    #prints '13'
    cus = NotesModel.objects.get(id=user.id)
    print(cus)
    # raises - NotesModel matching query does not exist.
    if request.method == 'POST':
        form = NewNote(request.POST)
        if form.is_valid():
            # cus = NotesModel.objects.get(id=user.id)
            # cus.notes_set.create(notesOf=user)
            form.save()
            return redirect('welcome')
    context={'form':form}
    return render(request,'todoapp/new_note.html',context)

models.py

class NotesModel(models.Model):
    userFromModel = models.OneToOneField(User,null=True,on_delete=models.CASCADE)
    name = models.CharField(max_length=100,null=True)

    def __str__(self):
        return self.name

class Notes(models.Model):
    notesOf = models.ForeignKey(NotesModel,null=True,on_delete=models.SET_NULL)
    title = models.CharField(max_length=100,null=True)
    description = models.TextField(null=True,blank=True)
    created_date = models.DateTimeField(auto_now_add=True)
    edited_date = models.DateTimeField(auto_now=True)

    def __str__(self):
        return str(self.title)

консольный вывод или журнал сервера
django база данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...