From 4accae944dada0dc615c8022296e1f563d439272 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20Mart=C3=ADn?= Date: Mon, 22 Jun 2015 23:28:06 +0200 Subject: [PATCH] using amiibo shop instead of repeating FKs --- .../migrations/0010_auto_20150622_2326.py | 56 +++++++++++++++++++ amiibofindr/apps/amiibo/models.py | 13 +++-- 2 files changed, 63 insertions(+), 6 deletions(-) create mode 100644 amiibofindr/apps/amiibo/migrations/0010_auto_20150622_2326.py diff --git a/amiibofindr/apps/amiibo/migrations/0010_auto_20150622_2326.py b/amiibofindr/apps/amiibo/migrations/0010_auto_20150622_2326.py new file mode 100644 index 0000000..e16fa6e --- /dev/null +++ b/amiibofindr/apps/amiibo/migrations/0010_auto_20150622_2326.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('amiibo', '0009_amiiboshop_item_id'), + ] + + operations = [ + migrations.AlterModelOptions( + name='amiiboshop', + options={'ordering': ('shop__name',)}, + ), + migrations.RemoveField( + model_name='amiiboprice', + name='amiibo', + ), + migrations.RemoveField( + model_name='amiiboprice', + name='shop', + ), + migrations.RemoveField( + model_name='amiibopricehistory', + name='amiibo', + ), + migrations.RemoveField( + model_name='amiibopricehistory', + name='shop', + ), + migrations.AddField( + model_name='amiiboprice', + name='amiibo_shop', + field=models.ForeignKey(default=1, to='amiibo.AmiiboShop'), + preserve_default=False, + ), + migrations.AddField( + model_name='amiibopricehistory', + name='amiibo_shop', + field=models.ForeignKey(default=1, to='amiibo.AmiiboShop'), + preserve_default=False, + ), + migrations.AlterField( + model_name='amiiboshop', + name='amiibo', + field=models.ForeignKey(related_name='shops_set', to='amiibo.Amiibo'), + ), + migrations.AlterField( + model_name='amiiboshop', + name='shop', + field=models.ForeignKey(related_name='amiibos_set', to='shop.Shop'), + ), + ] diff --git a/amiibofindr/apps/amiibo/models.py b/amiibofindr/apps/amiibo/models.py index 3aa36d0..775ba31 100644 --- a/amiibofindr/apps/amiibo/models.py +++ b/amiibofindr/apps/amiibo/models.py @@ -90,18 +90,20 @@ class Amiibo(models.Model): class AmiiboShop(models.Model): - amiibo = models.ForeignKey(Amiibo) - shop = models.ForeignKey('shop.Shop') + amiibo = models.ForeignKey(Amiibo, related_name='shops_set') + shop = models.ForeignKey('shop.Shop', related_name='amiibos_set') url = models.CharField(max_length=255) item_id = models.CharField(max_length=64) + class Meta: + ordering = ('shop__name', ) + def __unicode__(self): return u'{} in {}'.format(self.amiibo.name, self.shop.name) class AmiiboPrice(models.Model): - amiibo = models.ForeignKey(Amiibo) - shop = models.ForeignKey('shop.Shop') + amiibo_shop = models.ForeignKey(AmiiboShop) price = models.DecimalField(max_digits=6, decimal_places=2) currency = models.CharField(default='EUR', max_length=3) date = models.DateTimeField(auto_now_add=True) @@ -129,8 +131,7 @@ class AmiiboPrice(models.Model): class AmiiboPriceHistory(models.Model): - amiibo = models.ForeignKey(Amiibo) - shop = models.ForeignKey('shop.Shop') + amiibo_shop = models.ForeignKey(AmiiboShop) price = models.DecimalField(max_digits=6, decimal_places=2) currency = models.CharField(default='EUR', max_length=3) date = models.DateTimeField(auto_now_add=True)