2010-01-22 31 views
1
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現場查看。我也嘗試對可用的重新排序進行比較,以便如果重新排序少於可用重新排序字段將變成紅色,表明您需要訂購更多。謝謝

回答

0
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',)