我有一个用户模型,其中Foreignkey指示用户属于哪个组。用户可以订购服务。服务的价格取决于它是哪个服务以及用户属于哪个组。服务和组的数量可以更改,但在任何时候我都需要每个可能的服务组组合的价格。你知道吗
class User(models.Model):
name = models.CharField()
group = models.Foreignkey(Group)
class Group(models.Model):
group_name = models.CharField()
class Order(models.Model):
user = models.Foreignkey(User)
type = models.Foreignkey(Service)
class Service(models.Model):
type = models.CharField()
似乎我不能简单地在服务模型中添加一个price字段,因为同一个服务的价格和组的价格一样多。你知道吗
问题1:我应该将价格存储在哪种型号中? 我想到了以下几点:
class Price(models.Model):
service = models.Foreignkey(Service)
group = models.Foreignkey(Group)
price = models.DecimalField()
这是明智的策略吗?你知道吗
问题2:只有管理员会创建一个新的组或服务,但当这种情况发生时,我需要确保在Django的管理界面中,例如创建一个新服务时,表单还要求每个组有不同的价格,反之亦然。如果创建了新组,则表单还应要求所有服务的价格。除此之外,最好确保每个唯一的服务组组合只能有一个Price实例。你知道吗
对于问题2,我需要在新的组(或服务)表中设置价格。您可以使用一个必需的下拉字段,该字段由价格查询填充。小组形式的草图可以举例说明这一点:
相关问题 更多 >
编程相关推荐