0

我有两个模型:ProductCurrency

class Product(models.Model):
  Currency = models.ManyToManyField(
    'Currency', verbose_name=u'Currency', blank=True, null=True)

class Currency(models.Model):
  Name = models.CharField(u'Currency Name', max_lenght=16)
  Sign = models.CharField(u'Currency Sign', max_lenght=4)

将一些价值从 models.Product 关联到 models.Currency 的最佳方法是什么?

示例:
model.Currency 包含对象“USD”、“Euro”、“Krona”。
model.Product 包含一个与models.Currency 'USD' 和'Euro' 相关联的对象'Cactus'。
如何为“美元”和“欧元”设置一些价值(价格)?

我想要这样的东西:

Product.objects.get(Name='Cactus').get_price(Current.objects.get(Name='USD'))
Product.objects.get(Name='Cactus').get_price(Current.objects.get(Name='Euro'))

提前致谢!

4

1 回答 1

1
class Product(models.Model):
    currencies = models.ManyToManyField('Currency', through='Pricing', blank=True, null=True)

class Currency(models.Model):
    name = models.CharField()
    sign = models.CharField()

class Pricing(models.Model):
    product = models.ForeignKey(Product)
    currency = models.ForeignKey(Currency)
    price = models.FloatField()

然后你可以使用类似的东西

product = Product.objects.get(name='Cactus')
price = product.pricing_set.get(currency__name='USD')
于 2013-06-10T12:45:52.573 回答