2013-09-04 6 views
6

W administratorze Django można ustawić pole raw_id_fields, aby widżet wyszukiwania był wyświetlany zamiast pola wyboru. Jest to bardzo proste, aby zaoszczędzić wiele zapytań do bazy danych, gdy tabela klucza obcego jest ogromna.Jak skonfigurować raw_id_fields w django-rest-framework?

Co to jest odpowiednik w widokach przeglądarki Django Rest Framework?

Odpowiedz

5

Django Framework 3 Reszta nie obsługuje atrybut widget na polu serializer. Jednak, aby uzyskać który możesz przeglądać API nawet użytkowej, spróbuj zmienić atrybut style używać 'base_template': 'input.html' jak w poniższym przykładzie:

class CustomerAddressSerializer(serializers.ModelSerializer): 
    customer = serializers.IntegerField(source='customer_id' style={'base_template': 'input.html', 'placeholder': "Customer ID"}) 
    class Meta: 
     model = models.CustomerAddress 
     fields = ('id', 'customer', 'street', 'zip', 'city') 

ten sposób Państwa ogromny select tag z tysiącami obcych kluczowych options zmieni się prosty tekst input. Aby uzyskać więcej informacji, sprawdź dokumenty pod adresem http://www.django-rest-framework.org/topics/browsable-api/#handling-choicefield-with-large-numbers-of-items

+0

to powinna być zaakceptowana odpowiedź! –

1

Obecnie nie ma na to żadnego wsparcia. Jestem prawie pewien, że prośby o pociągnięcie będą mile widziane.