Wenn die folgende QuerySet in der Shell Django Ausführung (python manage.py shell
):QuerySet in der Schale arbeiten, aber nicht in Views.py - Django 1.10
Employee.objects.filter(restaurant__pk = 1)
ich ein Ergebnis zurück:
<QuerySet [<Employee: Joyce McDonnals>]>
Bitte Entschuldigung, weil ich neu in Django bin. Ich versuche, dieses Abfrage-Set dynamisch in meiner Webseite durch das PK zu implementieren. Die get_queryset
, die ich im views.py definiert ist:
class EmployeeList(ListView):
template_name= "Restaurants/employee_list.html"
model = Employee
def get_queryset(self, **kwargs):
queryset = Employee.objects.filter(pk= restaurant.pk)
return queryset
Aber das gibt den Fehler:
NameError at /restaurant/1/employees/
name 'restaurant' is not defined
Request Method: GET
Request URL: http://127.0.0.1:8001/restaurant/1/employees/
Django Version: 1.10.5
Exception Type: NameError
Exception Value:
name 'restaurant' is not defined
ich in meinem views.py einige Varianten für die queryset versucht haben, aber ich kann Es scheint nicht zu funktionieren. Könnte mir jemand helfen, dieses Abfrage-Set zu definieren?
Das Problem ist nicht die queryset, aber Standard-Python-Scoping. Woher soll der Wert für "Restaurant" kommen? –
'Restaurant' wurde in meinem Mitarbeitermodell als Fremdschlüssel für das Modell' RestaurantFeature' definiert, so: 'restaurant = models.ForeignKey (RestaurantFeature, on_delete = models.CASCADE)' –
Aber das beantwortet die Frage nicht ; \ wo ist der * spezifische * Wert, nach dem gefiltert werden soll? –