Как отобразить значения экземпляра формы вне форм ввода?

from django.db import models
from django import forms


class Author(models.Model):
    name = models.CharField(max_length=254, primary_key=True)


class Patron(models.Model):
    name = models.CharField(max_length=254, primary_key=True)


class Book(models.Model):
    author = models.ForeignKey(Author, on_delete=models.PROTECT)
    title = models.CharField(max_length=254)
    isbn = models.CharField(max_length=254, primary_key=True)
    checked_out_to = models.ForeignKey(Patron, null=True, default=None, on_delete=models.CASCADE)


class BookInfoForm(forms.ModelForm):
    class Meta:
        model = Book
        fields = '__all__'

Рассмотрим приведенный выше фрагмент кода. Я пытаюсь создать форму, которая отображает предоставленную информацию из данного экземпляра модели, но позволяет редактировать только поле checked_out_to. Остальные поля не должны отображаться как поля ввода.

Атрибуты readonly, hidden и disabled - это не то, что я ищу.

Спасибо, что прочитали мой вопрос :)

РЕДАКТИРОВАТЬ: Я буду искать возможность расширить это до набора форм.

Я понял это!

class BookInfoForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        # Allows 'instance' to be callable from template
        instance = kwargs.get('instance', None)
    class Meta:
        model = Book
        fields = '__all__

В шаблоне:

{{ form.instance.author.name }} - {{ form.instance.title }}
Вернуться на верх