Как просмотреть объекты по внешнему ключу в одном HTML (Django)?
Я использую Django Framework и создаю уведомление. Я хотел бы создать уведомление, которое может фильтровать по id внешнего ключа. Но когда я попробовал, я получил все результаты, я не уверен, как фильтровать по id, чтобы по id я мог просматривать поток инцидентов.
Вид
def user_reports(request):
profile = get_object_or_404(UserProfile, user=request.user)
incidentReports = IncidentGeneral.objects.all().order_by('-updated_at')
# incident_general = IncidentGeneral.objects.filter(pk=request.id)
notifications = Notification.objects.all().order_by('-date')
paginator = Paginator(incidentReports, 10)
page_number = request.GET.get('page')
page_obj = paginator.get_page(page_number)
if request.method == 'POST':
for i in incidentReports:
x = request.POST.get(str(i.id))
print(x)
if str(x) == 'on':
b = IncidentGeneral.objects.get(id=i.id)
b.soft_delete()
# b.is_deleted = True
# b.deleted_at = timezone.now()
messages.success(request, 'User Report successfully deleted')
context = {
'profile': profile,
'incidentReports': page_obj,
'notifications': notifications,
# 'IncidentGeneral': IncidentGeneral
}
return render(request, 'pages/user_report.html', context)
Модель - Уведомление
class Notification(models.Model):
TYPES = ((1, 'Reports'), (2, 'User Accounts'), (3, 'Inbox'), (4, 'Attributes Builder'))
incident_report = models.ForeignKey('incidentreport.IncidentGeneral', on_delete=models.CASCADE, blank=True, null=True)
sender = models.ForeignKey('accounts.User', on_delete=models.CASCADE, blank=True, null=True, related_name="noti_from_user")
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="noti_user")
notification_type = models.IntegerField(choices=TYPES)
remarks = models.CharField(max_length=90, blank=True)
text_preview = models.CharField(max_length=90, blank=True)
date = models.DateTimeField(auto_now_add=True)
is_seen = models.BooleanField(default=False)
Модель - IncidentGeneral
Фрагменты HTML
в файле views.py filter:
incidentReports = IncidentGeneral.objects.filter(user=request.user).order_by('-updated_at')
notifications = Notification.objects.filter(incident_report__in=incidentReports).order_by('-date')
# your other codes