每个us的字段值不同

2024-06-01 02:18:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个模型:

class Product(models.Model):

    art_name = models.CharField(max_length=100)
    plu_num = models.IntegerField(default=0, unique=True)

    sales_price_brutto = models.FloatField(null=True)
    sales_price_netto = models.FloatField(null=True)
    last_price = models.FloatField(null=True)
    purchase_price_brutto = models.FloatField(null=True)
    purchase_price_netto = models.FloatField(null=True)             
    entry_date = models.DateField()
    margin = models.FloatField(null=True)
    stock = models.IntegerField(default=0)

例如,我创建了两个用户组。然后我希望每组用户在stock和sales\u price\u brutto中有不同的值(模型的save方法根据sales\u price\u brutto和purchase\u price\u brutto计算其余字段的值)。我尝试再添加一个字段:

owner = models.ForeignKey(Group, editable=False)

但它似乎不像我想的那样工作。我真的不知道有没有办法


Tags: 模型truedefaultmodelsstockproductpurchasenull
2条回答

如果希望stock字段依赖于用户,则需要另一个模型来包含该信息。它可能看起来像:

class UserStock(models.Model):
  product = models.ForeignKey(Product)
  user = models.ForeignKey(User)
  stock = models.IntegerField(default=0)

这样,在Product模型上就不会有stock字段,而是创建并保存其中一个对象来设置每个用户的股票信息。如果您的用户模型未被调用User,则可能必须更改名称

请记住,数据库表(这是使用django模型创建的表)存储一个2D数据数组。你不能轻易地(也不应该)在一个字段中放入几位数据

这看起来像是库存/销售额,您希望向不同的客户显示不同的价格,或者大致相等的价格。这不可能像您所尝试的那样在一个表中完成

标准的方法是使用价格手册。每个价目表都定义了一个客户编号列表,是一个产品/价格列表

我见过的另一种方法是设置定价“区域”,每个客户被分配到一个给定的“区域”,每个区域的价格根据基于成本的公式计算。例如,区域1是成本*1.25,区域2是成本*1.30,区域4是成本*1.4,区域5是成本*1.5。每个客户都能看到他们所在区域的价格

相关问题 更多 >