Ich möchte meine Django Rest Framework serialisierten Daten nach der URL filtern, die vom Benutzer zur Verfügung gestellt wird. Hier ist mein Code:Django Rest Framework Daten durch URL filtern
models.py:
class Airline(models.Model):
name = models.CharField(max_length=10, blank=True, null=True)
code = models.CharField(max_length=2, blank=True, null=True)
def __str__(self):
return self.name
class FinancialData(models.Model):
airline = models.ForeignKey(Airline)
mainline_revenue = models.DecimalField(max_digits=7, decimal_places=2)
regional_revenue = models.DecimalField(max_digits=7, decimal_places=2)
other_revenue = models.DecimalField(max_digits=7, decimal_places=2)
total_revenue = models.DecimalField(max_digits=7, decimal_places=2)
def __str__(self):
return str(self.mainline_revenue)
view.py:
class ListAirlineFinancialData(generics.ListAPIView):
serializer_class = FinancialDataSerializer
def get_queryset(self, *args, **kwargs):
query_list = FinancialData.objects.filter(pk=airline_id)
urls.py:
urlpatterns = [
url(r'^api/v1/airline/(?P<pk>\d+)/$', views.ListAirlineFinancialData.as_view(), name='airline_financial_data'),
]
Was soll ich in Ansichten Code zu filtern Meine Daten für die folgende URL. http://localhost:8000/api/v1/airline/3/
In diesem Moment Django mir einen Fehler geben, dass Name ‚airline_id‘ nicht definiert ist, kann ich verstehen, dass es will, dass ich auf airline_id passieren, die in der Datenbank ist, aber ich weiß wirklich nicht, wie es zu tun . Welchen Code soll ich in views.py schreiben, dass er alle Daten der Fluggesellschaft nach einer bestimmten ID filtert? Danke
Sie müssen eine RetrieveAPIView zusammen mit LIstAPIView hinzufügen. Vielleicht hilft Ihnen das http://www.django-rest-framework.org/api-guide/generic-views/#retrieveapiview – Devansh