我有一个图书库存表单,它有两列来表示股票价值:当前股票,第一次插入时股票,当前股票和股票应该是相同的,但是,当借书时,当前股票应该减少,股票列将是第一个值:例如: book1有股票5和当前股票5,有人借了book1,所以book1股票5和当前股票4,
我不想使用数据库触发器,因为我的应用程序是独立于数据库的。
请帮助我怎么做,我可以从django管理表单?
models.py:
class BooksCopy(models.Model):
book = models.ForeignKey(Book, on_delete=models.PROTECT)
branch = models.ForeignKey(Branch, on_delete=models.PROTECT)
no_of_copies = models.IntegerField('Stock')
current_no_of_copies = models.IntegerField('Current Stock')admin.py:
class BooksCopiesAdmin(admin.ModelAdmin):
models.BooksCopy.current_no_of_copies = models.BooksCopy.no_of_copies
exclude = ('current_no_of_copies',)
list_display = ('branch', 'book', 'no_of_copies', 'current_no_of_copies',)发布于 2019-08-15 03:05:30
我假设你有一些保存借阅书籍的类,以及由哪个用户提供。就像这样
class BorrowedBooks(models.Model)
user = models.ForeignKey(User, on_delete=models.CASCADE)
book = models.ForeignKey(Book, on_delete=models.CASCADE)您现在可以
class BooksCopy(models.Model):
book = models.ForeignKey(Book, on_delete=models.PROTECT)
branch = models.ForeignKey(Branch, on_delete=models.PROTECT)
no_of_copies = models.IntegerField('Stock')
@property
def current_no_of_copies (self):
return self.no_of_copies - self.borrowedbooks_set.all()https://stackoverflow.com/questions/57489175
复制相似问题