from django.db import models
from django.contrib.auth.models import User
class Product(models.Model):
name = models.CharField(max_length = 127)
description = models.TextField()
code = models.CharField(max_length = 30)
lot_no = models.CharField(max_length = 30)
inventory = models.IntegerField()
commited = models.IntegerField()
reorder = models.IntegerField()
created_date = models.DateField(auto_now_add = True)
comment_user = models.ForeignKey(User, null=True)
comment_txt = models.TextField()
def __unicode__(self):
return self.code + " - " + self.name + " - " + self.lot_no + " - " + str(self.created_date)
@property
def available(self):
return self.inventory - self.commited
admin.py
from django.contrib import admin
from CMS.Inventory.models import Product
class padmin(admin.ModelAdmin):
search_fields=['name', 'description', 'code', 'lot_no' ]
admin.site.register(Product, padmin)
Я пытаюсь создать поле, которое не редактируется, но доступно для просмотра в классе продукта django, который выполняет математику в поле @property. Я также пытаюсь сделать сравнение доступных, чтобы изменить порядок, так что если переупорядочение меньше, чем доступно, поле переупорядочения станет красным, что вам нужно будет заказать больше. Спасибо вам
def colored_available(self):
if self.reorder < self.available:
return self.reorder
return '<span style="color: red;">%d</span>' % self.reorder
colored_available.allow_tags = True
colored_available.short_description = "Available"
И это вашему администратору модели (padmin):
list_display = ('name', 'colored_available') # add more fields to be displayed in the list of products
readonly_fields = ('colored_available',)