2017-08-22 3 views
0

Das scheint einfach .. Ich habe eine Restaurant Modell und Recipe Modell, alles, was ich will, ist in der Lage, alle Recipes von einer bestimmten Restaurant nachschlagen. Ich bin mit dem rückwärts Manager FOO_set und kann nicht scheinen, damit es funktioniert:Fremdschlüssel rückwärts Manager funktioniert nicht django

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}) 

Wenn ich diese laufen bekomme ich eine Ausnahme in der dashboard Aussicht. Mit Blick auf meine Datenbank hat das Objekt user.restaurant Rezepte zugeordnet. Wenn ich nur recipe_list = user.restaurant mache, gibt es das Restaurantobjekt zurück. Nur wenn ich recipe_set hinzufügen, schlägt es fehl. Auch versucht recipe_set.all und all(). Ich habe alles migriert. Django 1.11

+0

sind immer die volle Rückverfolgung des Fehlers in Frage –

Antwort

2

Sie setzen related_name so müssen Sie es verwenden: ersetzen:

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

zu

recipe_list = user.restaurant.recipe.all() 
#        ^^^^^^