Я пытаюсь создать приложение 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 база данных