Django отображает тодолист пользователя, используя вход через google

Я пытаюсь отобразить тодолист всех пользователей через метод входа в google

Я использую таблицу auth_user и создал таблицу todolist следующим запросом.

CREATE TABLE todoitem(
id SERIAL PRIMARY KEY,
content char(100) NOT NULL,
userid int NOT NULL,
constraint fk_userid
    foreign key (userid)
        references auth_user(id)
);

добавьте данные образца с помощью pgadmin

insert into todoitem(content,userid) values('each users must have their own todolist',2);

select b.first_name,b.last_name,a.content AS Todo
from todoitem a
INNER JOIN auth_user b ON a.userid = b.id
where a.userid = 2;

first_name | lastname | Todo

testfirstname | testlastname | каждый пользователь должен иметь свой собственный список тодолистов

вот мой model.py

class Todoitem(models.Model):
   # I created this id because after i use inspectdb there's no id here
   id = models.IntegerField(primary_key=True)
   content = models.CharField(max_length=100)
   userid = models.ForeignKey(AuthUser, models.DO_NOTHING, db_column='userid')

class Meta:
    managed = False
    db_table = 'todoitem'

class AuthUser(models.Model):
   # I also created this id
   id = models.IntegerField(primary_key=True)
   password = models.CharField(max_length=128)
   last_login = models.DateTimeField(blank=True, null=True)
   is_superuser = models.BooleanField()
   username = models.CharField(unique=True, max_length=150)
   first_name = models.CharField(max_length=150)
   last_name = models.CharField(max_length=150)
   email = models.CharField(max_length=254)
   is_staff = models.BooleanField()
   is_active = models.BooleanField()
   date_joined = models.DateTimeField()

class Meta:
    managed = False
    db_table = 'auth_user'

вот мой views.py

def todoView(request, id=None):
   # I assume that id == id from auth_user?
   all_todo_items = Todoitem.objects.filter(userid=id).values_list('id', flat=True)
   return render(request, 'index.html', {'all_items': all_todo_items})

и urls.py

urlpatterns = [
path('', todoView),
path('admin/', admin.site.urls),
path('accounts/', include('allauth.urls')),
]

последний мой index.html

{% load socialaccount %}
<html>
  <head>
   <title>Personal TodoList</title>
  </head>
   <body>
{% if user.is_authenticated %}
<p>Welcome, {{ user.username }} !</p>
{% else %}
<a href="{% provider_login_url 'google' %}">Login with Google</a>
{% endif %}
<table>
 <tr>
    <th colspan="2">List of Todos</th>
 </tr>
{% for todo_items in all_items %}
 <tr>
    <td>{{todo_items.id.content}}</td>
 </tr>
{% endfor %}
</table>
</body>
Вернуться на верх