Я хотел бы отображать информацию, полученную из базы данных SQLite, но я бы хотел, чтобы отображались только данные, относящиеся к пользователю.

enter image description here

Поскольку электронная почта каждого пользователя уникальна, я хочу, чтобы она соответствовала электронной почте текущего подписанного пользователя. Ниже приведен код соответствующего представления выше.

Обновление: я только что попытался сделать фильтр

claims = SaveClaimForm.objects.filter(email=user.email) 
def newclaim(request):
  
  context = initialize_context(request)
  user = context['user']
  if request.method == 'POST':
      name = request.POST['name_field']
      email = request.POST['email_field']
      claim = request.POST['claim_field']
      claimtype = request.POST.get('claimtype')
      description = request.POST['description_field']
      receipt = request.POST.get('receipt_field')
      cheque = request.POST.get('cheque_field')
      ins = SaveClaimForm(name=name, email=email, claim=claim, claimtype=claimtype, description=description, receipt=receipt, cheque=cheque)
      ins.save()
      print("The Data has been written")
  return render(request, 'Login/newclaim.html/', context)

Рабочий обновленный вид (со ссылкой на данный ответ):

  def viewclaims(request):
      context = initialize_context(request)
      user = context['user']
      if user.get('email', None):
        claims = SaveClaimForm.objects.filter(email=user.get('email', None))
        return render(request, 'Login/existingclaims.html', {'claims':claims, 'user':user})
 
0
Izzuan 11 Май 2021 в 10:38

1 ответ

Лучший ответ

См. Руководство

Это будет что-то вроде

if user.get('email', None):
  SaveClaimForm.objects.filter(email=user.get('email', None))
else:
  return HttpResponse('Unauthorized', status=401)

Вместо того

SaveClaimForm.objects.all()
2
rzlvmp 11 Май 2021 в 09:27