foreignkey后退经理不工作django

时间:2017-08-22 06:31:36

标签: django foreign-keys

这看起来很简单..我有Restaurant模型和Recipe模型,我想要的是能够通过某个Recipes查找所有Restaurant 。我正在使用向后经理FOO_set,似乎无法使其工作:

models.py

class Restaurant(models.Model):
    restaurant_user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='restaurant')

class Recipe(models.Model):
    restaurant = models.ForeignKey(Restaurant, on_delete=models.CASCADE, related_name='recipe')

views.py

def dashboard(request):
    user = request.user
    try:
        user.restaurant
        recipe_list = user.restaurant.recipe_set
        return render(request, 'usermanage/dashboard_restaurant.html',{'recipe_list':recipe_list})

当我运行这个时,我在dashboard视图中得到一个例外。查看我的数据库,user.restaurant对象具有与之关联的配方。如果我只做recipe_list = user.restaurant它返回餐馆对象。就在我添加recipe_set时,它失败了。还尝试了recipe_set.allall()。我已经迁移了一切。 Django 1.11

1 个答案:

答案 0 :(得分:2)

你设置related_name所以你需要使用它: 替换:

recipe_list = user.restaurant.recipe_set
#                                   ^^^^^

recipe_list = user.restaurant.recipe.all()
#                                ^^^^^^
相关问题