Математика и изменение цвета поля

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. Я также пытаюсь сделать сравнение доступных, чтобы изменить порядок, так что если переупорядочение меньше, чем доступно, поле переупорядочения станет красным, что вам нужно будет заказать больше. Спасибо вам

Теги:
django-admin

1 ответ

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню