Как в формах Django отобразить реальный элемент, а не его ID?

У меня есть форма, в которой отображаются данные. У меня есть поле, которое доступно только для чтения [book_id], но отображается именно ID. Как бы мне сделать так, чтобы отображался реальный артикул?

class IssueForm(forms.ModelForm):
    def __init__(self,*args, pk,school,issuer, **kwargs):
        super(NewIssueForm, self).__init__(*args, **kwargs)
        klasses = [1,2,3,4]
        if Books.objects.filter(school=school,id=pk,subject__name = "revision"):
            self.fields['due_days'].widget.attrs['hidden'] = False
        else:
            self.fields['due_days'].widget.attrs['hidden'] = True
        self.fields['issuer'].initial = issuer
        self.fields['borrower_id'].queryset = Student.objects.filter(school=school,klass__name__in = klasses)
        self.fields['borrower_id'].label = "Select Student."
        self.fields['book_id'].label = "Selected Book."
        self.fields['book_id'].widget.attrs["readonly"] = True
        self.initial['book_id'] = Books.objects.get(school=school,id=pk)
       

    class Meta:
        model = Issue
        fields = ['issuer','book_id','borrower_id','due_days']
        widgets = {
            'book_id':forms.TextInput(attrs={"class":'form-control','type':''}),
            'issuer':forms.TextInput(attrs={"class":'form-control','type':'hidden'}),
            'borrower_id': Select2Widget(attrs={'data-placeholder': 'Select Student','style':'width:100%','class':'form-control'}),
            'due_days':forms.TextInput(attrs={"class":"form-control"}),

        }

Я думал, что Books.objects.get(school=school,id=pk) должен был дать мне то, что я просил.

Это вид

def new_issue_book(request,pk):
    if request.method == 'POST':
        form = IssueForm(request.POST,school= request.user.school,pk=pk,issuer = request.user)
        if form.is_valid():
            try:
                name = form.cleaned_data['borrower_id'].id
                form.save(commit=True)
                books = Books.objects.filter(school = request.user.school).get(id=pk)#Get a book names as selected in the dropdown
                Books.Claimbook(books)
                messages.success(request,f'Successful')
                return redirect('view_books')
            except Exception as e:
                messages.warning(request,f"{e}")
                return redirect('view_books')
    else:
        form = IssueForm(school= request.user.school,pk=pk,issuer = request.user)
    
    return render(request, 'libman/new_issue_book.html', {'form': form})
Вернуться на верх