这看起来很简单..我有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.all
和all()
。我已经迁移了一切。 Django 1.11
答案 0 :(得分:2)
你设置related_name
所以你需要使用它:
替换:
recipe_list = user.restaurant.recipe_set
# ^^^^^
到
recipe_list = user.restaurant.recipe.all()
# ^^^^^^