Thursday, July 23, 2015

Re: Django Model field : Ordered List of Foreign Keys

There are options, but here's what I'd do:

class Stop(models.Model):
  name = models.TextField()  #use CharField if not using Postgres
  latitude = models.DecimalField()
  longitude = models.DecimalField()
  route = models.ForeignKey('Route')
  sequence = models.IntegerField()

  class Meta:
    unique_together = (('route', 'sequence'), )
    ordering = ['route', 'sequence']

class Route(models.Model):
  # I'm sure there's something you want to know about the route,
  # so add it here.

>>> stops = Route.objects.first().stop_set


On Thu, Jul 23, 2015 at 9:21 PM, Ankit Agrawal <aaaagrawal@gmail.com> wrote:
I have a `Route` model which should store an ordered list of stops along that route. How should I go about modeling this relation?

    class Stop(models.Model):
        name
= ..
        latitude
= ..
        longitude
= ..
   
   
class Route(models.Model):
        stops_list
= # Ordered list of stops on the route


--
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 django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/72e84a42-a0ad-4dcb-bfcd-948d1050c8e2%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
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 django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CA%2Bv0ZYXhHwWHAovVC7RFhD6bm7Nmz%2BCSQrSSaSeqCZC9g7ybUg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment