2012-08-13 68 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