I'd use a single model for all products from any market then. On Sun, May 13, 2018 at 09:47:32AM +0800, Matt Snelgar wrote: > All of the products will share the same fields. > > I would filter on products, but my searches would only be restricted to one > market at a time. > > On Sun, May 13, 2018 at 1:51 AM, Ryan Nowakowski <[email protected]> > wrote: > > > > > > > On May 10, 2018 7:40:47 AM CDT, Matt Snelgar <[email protected]> wrote: > > > > > > > > >I am making a django app to browse available products at different > > >markets. > > >I am getting data for my models from a JSON url feed, > > > > > >I am not sure on the best approach to turn this data into models as the > > > > > >feed for a single market can contain upwards of 50k items. > > > > > > > > >Models - feel free to suggest any improvements on these > > > > > > # Details of a sellable products > > > class Product(models.Model): > > > item = models.IntegerField(primary_key=True, auto_created=False) > > > name = models.CharField(max_length=40) > > > > > ># Market where products can be bought, some markets will cater to > > >multiple suburbs. > > > class Market(models.Model): > > > id = models.IntegerField(primary_key=True, auto_created=True) > > > name = models.CharField(max_length=40) > > > > > > # Nearby suburbs can share the one market > > > class Suburb(models.Model): > > > name = models.CharField(max_length=30) > > >market = models.ForeignKey(Market, on_delete=models.SET_NULL, > > >null=True) > > > > > > # Actual product for sale > > > class ProductForSale(models.Model): > > > sale = models.IntegerField(primary_key=True) > > >product = models.ForeignKey(Product, on_delete=models.SET_NULL, > > >null=True) > > > cost = models.IntegerField(default=1) > > > owner = models.CharField(max_length=30) > > > quantity = models.IntegerField(default=1) > > >market = models.ForeignKey(Market,on_delete=models.SET_NULL, null=True > > >) > > > Feed of markets products example > > > > > > "market_products": [ > > > { > > > "id":11654, > > > "item":123, > > > "owner":"Bob", > > > "suburb":"Springvale", > > > "cost":3, > > > "quantity":1, > > > > > > }, > > > { > > > "id":11655, > > > "item":123, > > > "owner":"Sarah", > > > "suburb":"Sunnyville", > > > "cost":5, > > > "quantity":2, > > > > > > }, > > > > > >This is how I am trying to populate my ProductForSale models - I don't > > >know > > >if this is the correct approach for the Product FK, or how to link the > > >suburb to its Market FK > > > > > > markets = Market.objects.all() > > > for market in markets: > > > url = "jsonurl" > > > response = urllib.request.urlopen(url) > > > data = json.loads(response.read()) > > > for entry in data['market_products']: > > > new_product_sale = ProductForSale.objects.create( > > > product = Product.objects.get(item=entry['item']), > > > cost = entry['cost'], > > > owner = entry['owner'], > > > quantity = entry['quantity'] > > > ) > > > new_product_sale.save() > > > > > >Is there a point where I should create a separate model for each > > >markets > > >products, or is it fine to house them all in the one model? > > > > Do products from different markets have many different fields? Or are > > most of the fields common? > > > > Do you need to be able to filter on products across markets? Or are most > > of your product queries specific to a particular market? > >
-- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/20180513041531.GC28874%40fattuba.com. For more options, visit https://groups.google.com/d/optout.

