1 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊
解決。我的解決方案如下,但我不確定這是否是好的做法。
django.contrib.auth.models.User.favorites.RelatedObjectDoesNotExist: User has no favorites.
用戶模型可能有“收藏夾”字段,但我需要用“收藏夾”對(duì)象實(shí)際填充它。我通過(guò)在我的 views.py 中編寫一個(gè)函數(shù)來(lái)做到這一點(diǎn):
def add_favorite(request, pk):
# Check if the user has a favorites field. If not create one and add. If yes, just add
user_favorites, created = Favorite.objects.get_or_create(
user=request.user
)
recipe = get_object_or_404(Recipe, pk=pk)
user_favorites.favorites.add(recipe)
這似乎可行,我現(xiàn)在可以訪問(wèn)用戶的收藏夾,但我可能這不是一個(gè)好習(xí)慣。使用我的方法,創(chuàng)建的新模型中沒(méi)有“收藏夾”對(duì)象。只有當(dāng)用戶決定添加最喜歡的食譜時(shí)才會(huì)創(chuàng)建它,如果它不存在,上面的視圖將創(chuàng)建一個(gè)。
添加回答
舉報(bào)