Wie können wir eine Funktion in ModelViewSet
schreiben, die eine Liste von verschiedenen Datensatz in der Datenbank erhalten?So erhalten Sie eine benutzerdefinierte Liste in einem Viewset
Angenommen, dass wir dieses Modell haben.
class Animal(models.Model):
this_id = models.CharField(max_length=25)
name = models.CharField(max_length=25)
species_type = models.CharField(max_length=25)
...
und Serializer
class AnimalSerializer(serializers.ModelSerializer):
class Meta:
model = Animal
fields = (
'this_id',
'name',
'species_type',
...,
)
read_only_fields = ('id', 'created_at', 'updated_at')
und Viewset.
class AnimalViewSet(viewsets.ModelViewSet):
"""
This viewset automatically provides `list`, `create`, `retrieve`,
`update` and `destroy` actions.
"""
queryset = Animal.objects.all()
serializer_class = AnimalSerializer
Ich fand diese link nützlich wie Dekorateure wie
@list_route()
aber ich es auch nicht verstehen kann.
würde Ich mag von der Viewset Liste verschiedener Animal.species_type
Aufzeichnung erhalten. Bitte helfen Sie.
nehmen, nicht, was ich ist Herr meine, würde Ich mag eine Funktion aufzurufen das alle distinct types_type record in meiner Datenbank über Viewset bekommt. Es bedeutet, dass ich keine Anfrage mit einem bestimmten Spezies-Typ machen würde. –
also willst du nur spezies type ?? Ich habe meine Antwort editiert – Dap
So dass es bedeutet, dass wir es in einer anderen Serializer-Klasse definieren können? hört sich toll an und ich mag die Idee über den 'URL_Pfad'. –