Как применить список для конкретного пользователя?
Я новичок в Python Django.У меня есть вопрос в одной ситуации.Как вы видите на фотографиях, у меня есть приложение.Сначала пользователи могут войти в систему и они могут добавить новый элемент в список.Проблема в том, что когда все пользователи входят в систему, они добавляют элементы в одну и ту же базу данных.Например, когда 2 пользователя входят в систему, они видят одинаковые элементы. Я хочу создать отдельный список для каждого пользователя.Когда каждый пользователь входит в систему, он должен видеть свой собственный список.Я знаю, что я должен применить отношения один ко многим, но я не знаю, как я могу это сделать.Мне нужно знать, какие коды я должен написать в views.py (в def add(request) .
)примечание: имя модели моего элемента - Student
models.py
from django.db import models
from django.contrib.auth.models import User
from django.db.models.base import Model
from django.db.models.deletion import CASCADE
class Student(models.Model):
sid=models.CharField(max_length=7)
sname=models.CharField(max_length=255)
scontact=models.CharField(max_length=15)
user = models.ForeignKey(User, on_delete=models.CASCADE,related_name="todolist", null=True)
def __str__(self):
return self.sname
class ExtendUser(models.Model):
r = models.OneToOneField(User,on_delete=models.CASCADE)
date_of_birth = models.DateField(null=True)
city = models.CharField(max_length=30)
def __str__(self):
return self.r.username
views.py
from django.shortcuts import render,redirect
from .forms import StudentForm
from django.http import HttpResponseRedirect
from .models import Student
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.decorators import login_required
# Create your views here.
def add(request):
form=StudentForm(request.POST or None)
if form.is_valid():
# I know ,I should add something here
form.save()
return render(request,'add.html',{'form':form})
def show(request):
student=Student.objects.all()
return render(request,'show.html',{'student':student})
@login_required
def update(request,id):
student=Student.objects.get(id=id)
form=StudentForm(request.POST,instance=student)
if form.is_valid():
form.save()
return HttpResponseRedirect('/show')
return render(request,'update.html',{'student':student})
def delete(request,id):
form=Student.objects.get(id=id)
form.delete()
return HttpResponseRedirect('/show')
def indexView(request):
return render(request,'index.html')
@login_required
def registerView(request):
if request.method== "POST":
form=UserCreationForm(request.POST)
if form.is_valid():
form.save()
return redirect('login_url')
else:
form=UserCreationForm()
return render(request,'registration/register.html',{'form':form})
show.html
{% extends 'base.html' %}
{% block content %}
<div class="container mt-3">
{% if user.is_authenticated %}
<h4>Student Details </h4>
<a href="{% url 'add' %}" class="btn btn-sm btn-info">Add New</a>
<hr>
<table class="table">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Contact</th>
<th>Action</th>
<th>Unique</th>
</tr>
</thead>
<tbody>
{% for s in student %}
<tr>
<td>{{s.sid}}</td>
<td>{{s.sname}}</td>
<td>{{s.scontact}}</td>
<td>{{s.user}}</td>
<td>
<a href="/update/{{s.id}}" class="btn btn-sm btn-info">Edit</a>
<a href="/delete/{{s.id}}" class="btn btn-sm btn-danger">Delete</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% else %}
<a href="{% url 'login_url' %}">Login</a>
<a href="{% url 'register_url' %}">Register</a>
{% endif %}
{% endblock content %}