我有這樣定義的模型:「RelatedManager」對象沒有屬性
class UserDetail(models.Model):
user = models.ForeignKey(User, db_index=True, unique=True, related_name='details')
favourites = models.ManyToManyField(Article, related_name='favourited_by', blank=True)
而且我試圖做這樣的事情:
article = get_object_or_404(Article, pk=id)
request.user.details.favourites.add(article)
爲什麼不工作?
我得到這個錯誤:
'RelatedManager' object has no attribute 'favourites'
我猜details
是不正確的類型,但爲什麼不呢?我該如何執行這樣的查詢?
哦!現在這變得更有意義了。我猜這很明顯,*我*,用戶只有一個'UserDetail',但我想這不是在任何地方指定的。謝謝。 – mpen 2009-12-01 04:22:05
如果您更改了模型,而不是使用ForeignKey,則使用了OneToOneField,您可以完全按照您的預期進行操作。 OneToOneFields與ForeignKeys類似,只不過由於它們只是一個相關對象,所以Django將直接訪問該對象,而不是通過相關管理器。 請參閱https://docs.djangoproject.com/en/dev/ref/models/fields/#onetoonefield – mbargiel 2013-01-28 17:40:28