Sunday, June 3, 2012

Django 1.3 Ordering by two or more fields workaround ??

I'm working on Satchmo, which last version require django 1.3,

http://www.satchmoproject.com/docs/dev/requirements.html

but with 1.3 there is an ordering problem as said here:

https://docs.djangoproject.com/en/dev/ref/models/options/#ordering

"Changed in Django 1.4: The Django admin honors all elements in the
list/tuple; before 1.4, only the first one was respected."

So i have

-----------------models.py-------------------------------------------------------------------------
class Collection(models.Model):
collection_prdct = models.ForeignKey(Product, verbose_name=_('Base
Product'), related_name="test_cllctn", on_delete=models.PROTECT)
product = models.ForeignKey(Product, verbose_name=_('Collection
Product'), on_delete=models.PROTECT)
qta = models.IntegerField(default=1, verbose_name=_('Quantity'))
discount = models.ForeignKey(Discount, verbose_name=_('Discount'))
ordr = models.IntegerField(_("Ordering"), default=0,
help_text=_("Shipping order"))

def __unicode__(self):
return u"Coll.: %s - %s" % (self.collection_prdct,
self.product)

class Meta:
ordering = ('collection_prdct','ordr',)
verbose_name = _('Collection model')
verbose_name_plural = _('Collection models')
end
-----------------models.py-------------------------------------------------------------------------

I think that i can do a callable that return a virtual merged field
which order on...
something like

def _merged_field(self):
return u'%s%i' % (self.collection_prdct, self.order)
merged_field = property(_merged_field)

and change
ordering = ('collection_prdct','ordr',)
to
ordering = ('merged_field',)

but it gives me
"ordering" refers to "mergedfield", a field that doesn't exist.

Do i miss something?...or
What is the best way to have it order by two or more fields, expecially
in the admin list_view?

Thanks to all
Kooliah





--
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 django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate