我有一个Django书籍数据库,附带交易。在管理界面中,在每个书页上,我想显示每本书附带的交易。
理想情况下,这应该是只读的,无法添加或删除事务。我只想展示一些模特的领域。
在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',)
在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, ]
我有几个问题,都与事务在概念上是只读的事实有关。
另外:标题目前是“图书历史 - 交易:交易对象”。如何展示比“交易对象”更友好的东西?
请告诉我这是否应该分成单独的问题!
感谢。
答案 0 :(得分:8)
1:将max_num
设为0
http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#model-formsets-max-num
2:指定fields
属性
http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.fields
另外:覆盖模型中的__unicode__
方法
http://docs.djangoproject.com/en/dev/ref/models/instances/#django.db.models.Model.unicode