我对Django和编程都是新手。到目前为止,我只需要参考官方文件就可以建立一个网站,但现在我被卡住了。我将用加油站类比来描述我的问题。你知道吗
这就是我得到的:
class Grade(models.Model):
grade_name = models.CharField(max_length=30)
class Station(models.Model):
station_name = models.CharField(max_length=30)
gas_grade = models.ManyToManyField(Grade)
用它我创建了三个等级的对象:普通的,加号的,高级的。之后,我创建了几个站,我“分配”任何等级组合。容易的。你知道吗
当我需要价格时问题就开始了。一个明显的解决方案是增加价格模型:
class Price(models.Model):
station = models.ForeignKey(Station, on_delete=models.CASCADE)
price_regular = models.CharField(max_length=30)
price_plus = models.CharField(max_length=30)
price_premium = models.CharField(max_length=30)
但至少可以说,手动添加最后三个字段并不有趣。我的“成绩”和“站”可以每天增长。它们还有两个表示最小/最大价格的字段。你知道吗
所以。。。 我可以基于现有对象动态创建字段吗? 关键是我需要每个新的站有一个为每个等级分配的价格字段。你知道吗
请告知我的任何选择。
我已经快一个星期没打死人了。也许我还没弄明白,因为我遵循的逻辑是错误的?你知道吗
也许Django admin之外的专用“添加站点”表单可以工作?但我认为这需要大量的javascript参与。你知道吗
谢谢你。你知道吗
您可以将等级和价格视为电视台提供的产品的属性:
以上有几个优点:
你需要在ManyToManyField中使用intermediate model。价格数据在这里。所以:
相关问题 更多 >
编程相关推荐