Печать таблицы с тем же внешним ключом, что и id пользователей. Использование django и mysql
Я пытаюсь вывести все списки в таблице списков для вошедшего в систему пользователя в моем веб-приложении на главной странице. Я назначил внешний ключ в модели списка. Я не знаком с синтаксисом, но я знаю, что мне нужно сделать что-то, чтобы сопоставить мой внешний ключ с идентификатором пользователя и распечатать все материалы в модели списка. Для этого я запущу цикл for в моем HTML, но синтаксис для получения объектов из разных таблиц и сопоставления с таблицей, в которой я работаю, мне не знаком.
мой views.py выглядит следующим образом
def addnew(request):
if request.method == 'POST':
form = Sublist(request.POST)
if form.is_valid():
try:
form.save()
messages.success(request, ' Subscirption Saved')
name = sublist.objects.get(name=name)
return render (request, 'subscrap/main.html', {'sublist': name})
except:
pass
else:
messages.success(request, 'Error')
pass
else:
form = Sublist()
return render(request, 'subscrap/addnew.html', {'form': form})
@login_required(login_url='login')
@cache_control(no_cache=True, must_revalidate=True, no_store=True)
def main(request):
return render(request, 'subscrap/main.html')
def mod(request):
student = students.objects.all()
return render(request, 'subscrap/mod.html' , {'students': student})
Add new должен добавлять новые данные в модель списка. Это работает, но есть одна вещь, она не знает id пользователя и спрашивает меня при вводе данных, какой id я хочу сохранить, даже если я вошел в систему.
Main - это func для файла main.html, в котором я размещаю все материалы .
My Models.py
class students(models.Model):
fname = models.CharField(max_length=50)
lname = models.CharField(max_length=50)
password = models.CharField(max_length = 50 , null = True)
passwordrepeat = models.CharField(max_length = 50, null = True)
email = models.EmailField(max_length=150)
class Meta:
db_table = "students"
class sublist(models.Model):
author = models.ForeignKey(students, related_name='sublist' ,on_delete=models.CASCADE)
name = models.CharField(max_length=150)
cost = models.IntegerField(default = 0)
renewalcycle = models.IntegerField(default = 0)
class Meta:
db_table = "sublist"
Поскольку я использую формы, вот мой forms.py
lass StudentForm(forms.ModelForm):
class Meta:
model = students
fields = "__all__"
class Studentlogin(forms.Form):
email = forms.EmailField(max_length=150)
password = forms.CharField(max_length = 50, widget=forms.PasswordInput)
class Sublist(forms.ModelForm):
class Meta:
model = sublist
fields = "__all__"