У меня в представлении списка API задан URL 'api /', и я хочу изменить представление сведений (RetrieveAPI) с URL 'api /' pk '/' на 'api /' name '/ where имя это поле в моей модели.
Я пробовал различные комбинации
lookup_url_kwarg = 'name'
и
lookup_field = 'name'
в моих serializers.py и views.py, но либо я получаю ответ 404, либо URL-адрес по-прежнему api //. Также, если поле является строкой, я должен буду включать кавычки в мои URL? Любое понимание было бы здорово!
serializer.py:
class CountrySerializer(serializers.ModelSerializer):
class Meta:
model = Country
fields =('name', 'topLevelDomain', 'alpha2Code', 'alpha3Code', 'callingCodes',
'capital', 'altSpellings', 'region', 'subregion', 'population', 'latlng',
'demonym', 'timezones', 'borders', 'nativeName', 'numericCode',
'currencies', 'translations', 'flag', 'regionalBlocs', 'cioc')
lookup_field = 'name'
views.py:
class CountryListView(ListAPIView):
queryset = Country.objects.all()
serializer_class = CountrySerializer
class CountryDetailView(RetrieveAPIView):
queryset = Country.objects.all()
serializer_class = CountrySerializer
#lookup_url_kwarg = 'name'
url.py:
urlpatterns = [
path('', CountryListView.as_view()),
path('<name>/', CountryDetailView.as_view())
]