2010-11-11 3 views
0

Je suis en train de commander un queryset par ses noms de relation génériquesCommander un queryset par un champ foreignkey générique

Item.objects.order_by('content_object__name') 

j'ai les modèles suivants django:

from django.db import models 
from django.contrib.contenttypes.models import ContentType 
from django.contrib.contenttypes import generic 


class Item(models.Model): 
    content_type = models.ForeignKey(ContentType, null=True, blank=True) 
    object_id = models.PositiveIntegerField(null=True, blank=True) 
    content_object = generic.GenericForeignKey('content_type', 'object_id') 

    def __unicode__(self): 
     return unicode(self.content_type) 


class Work(models.Model): 
    name = models.CharField(max_length=50, blank=True) 

    def __unicode__(self): 
     return unicode(self.name) 

    def save(self): 
     super(Work, self).save() 
     item = Item(content_object=self) 
     item.save() 


class Event(models.Model): 
    name = models.CharField(max_length=50, blank=True) 

    def __unicode__(self): 
     return unicode(self.name) 

    def save(self): 
     super(Event, self).save() 
     item = Item(content_object=self) 
     item.save() 

Est-il possible pour faire ça? Comment l'atteindriez-vous?

Merci beaucoup!

Répondre

0

Vous ne pouvez pas faire cela, parce que content_object est représenté dans la base de données content_type et object_id, de sorte que vous pouvez commander seulement par l'un d'eux!

Questions connexes