2012-08-13 67 views
3

我有模式是这样的:Django的外键草堆关系

class Photo(ImageModel): 
    title = models.CharField(_('Title'), max_length=100, unique=True) 
    title_slug = models.SlugField(_('slug'), unique=True) 
    name = models.CharField(max_length=50, verbose_name="Name", blank=True) 


class GroupUpload(ImageModel): 
    title = models.CharField(verbose_name="Group Name", max_length=75) 
    date_added = models.DateTimeField(verbose_name="Date Added", 
      default=datetime.now, editable=False) 
    caption = models.TextField(verbose_name="Caption", blank=True)   
    photos = models.ManyToManyField('Photo', related_name='+', 
      verbose_name=_('F'),null=True, blank=True, through='GroupuploadPhotos') 

我的搜索索引:

class PostIndex(indexes.RealTimeSearchIndex, indexes.Indexable): 
    text = indexes.CharField(document=True, use_template=True)  
    date_added = indexes.DateTimeField(model_attr='date_added') 

    def get_model(self): 
     return Photo 

    def index_queryset(self): 
     return self.get_model().objects.filter(date_added__lte= 
                datetime.datetime.now()) 

现在我想GroupUpload的对象,它与照片的关系。有了这个定义,我只能在GroupUpload中获取Photo对象不相关的对象。我检查过文档。但还没有解决。

回答

3

如果您将related_name='+'放入您的class GroupUpload,发生了什么事?

UPDATE:

为什么未设置related_name = 'group_uploads' 并使用 photo.group_uploads.all()(或者如果它作为草堆信息搜索结果 - result.object.group_uploads.all() )?

问候

+0

你可以从这里得到一些信息关于related_name,https://docs.djangoproject.com/en/1.2/ref/models/fields/#django.db.models.ForeignKey.related_name – Aragon 2012-08-13 10:14:44

+0

@Aragon:你为什么不想有倒退关系? – 2012-08-13 12:33:21

+0

@Bernhard Vallant完全是因为我没有想到会议像一个问题....你有这个问题的任何解决方案?我仍然一直在努力。 实际上,如果我的模型是在单独的models.py中,我也可以为我的groupupload写新的RealTimeSearchIndex ..但不是这样的东西。 – Aragon 2012-08-13 12:57:17