У меня есть база данных книг Django с прикрепленными транзакциями. В интерфейсе администратора на каждой странице книги я хотел бы показать транзакции, прикрепленные к каждой книге.
В идеале он должен быть доступен только для чтения, без возможности добавления или удаления транзакций. Я хотел бы показать только некоторые поля модели.
In models.py
:
class Book(models.Model):
title = models.CharField(max_length=400)
class Transaction(models.Model):
id = models.IntegerField(primary_key=True)
book = models.ForeignKey(Book)
user = models.ForeignKey(User)
transaction_type = models.IntegerField(choices=TRANSACTION_TYPES)
ipaddress = models.IPAddressField(null=True, blank=True)
transaction_date = models.DateTimeField()
date_added = models.DateTimeField(auto_now_add=True)
class Meta:
get_latest_by = 'transaction_date'
ordering = ('-transaction_date',)
In admin.py
:
class TransactionInline(admin.StackedInline):
model = Transaction
readonly_fields = ['user', 'transaction_type', 'transaction_date']
verbose_name = 'Transaction'
verbose_name_plural = 'Book history'
class BookAdmin(admin.ModelAdmin):
fieldsets = [ (None, {'fields': ['title'}) ]
inlines = [ TransactionInline, ]
У меня есть несколько вопросов, и все они связаны с тем фактом, что транзакции концептуально доступны только для чтения.
- Как я могу отключить ссылку «добавить новую» для транзакций?
- Как я могу показать только те поля, которые меня интересуют — user, transaction_type и transaction_date — и скрыть остальные?
Кроме того: заголовок в настоящее время «История книги — Транзакция: объект транзакции». Как я могу показать что-то более дружелюбное, чем «Объект транзакции»?
Пожалуйста, дайте мне знать, если это должно быть разделено на отдельные вопросы!
Спасибо.