简体   繁体   English

Django Haystack外键关系

[英]Django Haystack foreignkey relationship

i have model like this: 我有这样的模特:

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')

my Search Index: 我的搜索索引:

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())

now i want to get object of GroupUpload which has relation with Photo. 现在我想获得与Photo有关的GroupUpload的对象。 with this defination i am getting only Photo object not related object in GroupUpload. 有了这个定义,我只得到GroupUpload中的Photo对象不相关的对象。 i have checked doc. 我检查过doc。 but havent solved yet. 但还没有解决。

if you drop the related_name='+' in your class GroupUpload , what's happened ? 如果你在你的class GroupUpload related_name='+' ,会发生什么?

UPDATE: 更新:

Why not set related_name='group_uploads' and use photo.group_uploads.all() (or if it as haystack SearchResult - result.object.group_uploads.all())? 为什么不设置related_name ='group_uploads'并使用photo.group_uploads.all()(或者如果它作为haystack SearchResult - result.object.group_uploads.all())?

regards 问候

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM