2010-01-22 2 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.pyMath и изменение поля цвета

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) 

Я пытаюсь сделать поле, которое не редактируется, но доступны для просмотра в классе продуктов Джанго, что делает математику Thats в области @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',)