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

1 Ответ

0 голосов
/ 14 июня 2011
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"

А это для вашей модели admin (padmin):

list_display = ('name', 'colored_available') # add more fields to be displayed in the list of products
readonly_fields = ('colored_available',)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...