Как я могу получить объект для определенного пользователя?
Я пытаюсь отобразить все книги, выпущенные пользователем.
В моих представлениях я пытаюсь получить объекты модели IssueBook
(только с текущим пользователем), Книга работает нормально, проблемы с IssueBook
моделью-
views.py
def booksIssued(request):
issued = IssueBook.objects.filter(user=request.user)
books = Book.objects.filter(issued=True, user=request.user)
print(issued, books)
context = {
"books" : books,
"issued" : issued
}
return render(request, 'books_issued.html', context)
models.py
class IssueBook(models.Model):
name = models.CharField(max_length=400)
classSection = models.CharField(max_length=10)
rollno = models.PositiveIntegerField()
issued_date = models.DateTimeField(auto_now_add=True)
date = models.DateField()
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)
book = models.ForeignKey(Book, on_delete=models.CASCADE)
def __str__(self):
return f"{self.book} issued by {self.name}"
forms.py
class issueBook(ModelForm):
def __init__(self, *args, **kwargs):
user = kwargs.pop('usr')
super(ModelForm, self).__init__(*args, **kwargs)
self.fields['book'] = forms.ModelChoiceField(queryset=Book.objects.filter(user = user))
date = forms.DateTimeField(widget=forms.DateInput(attrs={'type':'date'}))
class Meta:
model = IssueBook
fields = ['name', 'classSection', 'book', 'rollno', 'date']
books_issued.html
{% if issued %}
<div class="accordion accordion-flush" id="accordionFlushExample">
{% for issue in issued %}
<div class="accordion-item">
<h2 class="accordion-header" id="flush-heading{{ forloop.counter }}">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#flush-collapse{{ forloop.counter }}" aria-expanded="false" aria-controls="flush-collapse{{ forloop.counter }}">
{{ issue }}
</button>
...