Hello all- I'm trying to figure out the best way to manually order objects within a template.
I have a couple of pages on which I would like to be able to hand-pick content to fill certain areas. I searched through the treads of this list, and couldn't find a "best practice," so I thought I'd throw the question out again. Here's what I've come up with: == Model == page/models.py from django.db import models from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes import generic class Page(models.Model): name = models.CharField(max_length=200) content_type = models.ForeignKey(ContentType) class Meta: unique_together = (('name', 'content_type')) class Admin: pass def __unicode__(self): return self.name class OrderedItem(models.Model): position = models.PositiveIntegerField() page = models.ForeignKey(Page) content_type = models.ForeignKey(ContentType) object_id = models.PositiveIntegerField() content_object = generic.GenericForeignKey('content_type', 'object_id') class Meta: unique_together = (('position', 'page', 'content_type')) == End Model === I can then add order = generic.GenericRelation(OrderedItem) to any other model. This will allow me to do: >>> p = Page(name='homepage') >>> p.save() (Entry is an example model, one that has order = generic.GenericRelation(OrderedItem)) >>> e = Entry(headline='test') >>> e.save() >>> o1 = OrderedItem(position=1,page=p,content_object=e) >>> o1.save() >>> e2 = Entry(headline='fubar') >>> e2.save() >>> o2 = OrderedItem(position=2,page=p,content_object=e2) >>> o2.save() >>> ordered_items OrderedItem.objects.order_by('position').filter(page=p) >>> for item in ordered_items: ... print item.content_object.headline ... test fubar So, I could pass ordered_items to a template, which would allow me to display objects in an order I specified, which is great. So, I have two questions: 1. Is there a better way to do this? 2. I can't quite wrap my head around how to administer these items via the admin interface. Is there a way to do so without creating custom admin templates? Thanks for any guidance. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---