Manytomany django使用现有密钥

时间:2013-12-02 21:35:32

标签: django django-models django-orm

我希望这不是一个重复的问题。我正在尝试在django中设置模型。 在模型1中,我有一种物品(零件),它们可以一起形成物品类型2(汽车)。 我从外部接口到模型价格得到所有这些的价格。 如何设置价格之间的关系 - >零件和价格 - >汽车。 如果身份属于car och part,我不知道什么时候能得到价格。

class parts(models.Model):
   ident = models.CharField("IDENT", max_length = 12, unique = True, primary_key = True)
   name = models.CharField(max_length=30)

class car(models.Model):

   ident = models.CharField("IDENT", max_length = 12, unique = True)    
   start_date = models.DateField()
   end_date = models.DateField()
   parts= models.ManyToManyField(parts)    



class Prices(models.Model):
    ident= models.CharField(max_length=12)
    price = models.DecimalField(max_digits=10, decimal_places= 4)
    date = models.DateField()

    def __unicode__(self):
        return self.ident

   class Meta:
       unique_together = (("ident", "date"),)

1 个答案:

答案 0 :(得分:0)

我想你不会在你的模型中存储价格,因为你需要100%实时。所以你有;

car models.py

from parts.models import parts

name = models.CharField(max_length=100)
parts = models.ManyToManyField(parts)

希望你不是试图像一个全尺寸的自动区域类型交易一样开发,但如果它只是一个由许多部分组成的汽车模型对象,那么你需要的基本设置。与零件的多对多关系允许一辆汽车拥有许多零件。零件可以属于许多汽车。您不必在零件模型中指定多种关系,因为已在汽车模型中处理双向通信。

就价格而言,您可以在零件模型中设置价格数据库字段,但如果需要实时,您可能需要通过API请求该价格并直接在您的网页中显示。