Django (django-rest-framework) с автозаполнением Bootstrap. Filed Nameing
Я хочу автошаблонировать поле.
Но я не могу понять, как я могу добиться должного результата, потому что я еще не знаю, что является промышленным стандартом.
Похоже, что Bootstrap Autocomplete ожидает определенного именования поля как это. Я думаю, что это жестко закодировано. (по крайней мере, "текст"):
[
{ "value": 1, "text": "Google Cloud Platform" },
{ "value": 2, "text": "Amazon AWS" },
{ "value": 3, "text": "Docker" },
{ "value": 4, "text": "Digital Ocean" }
]
Как я могу изменить/маскировать имена файлов с ['id','provider'] на ['value','text'] на стороне Django?
Допустим, у меня есть:
#modell
class CloudProviders(models.Model):
provider = models.CharField(max_length=255, blank=True, null=True)
#id come by default
...
#Serializer
class CloudProvidersAutocompleteSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = CloudProviders
fields = ['id','provider']
#view
class CloudProvidersAutocomplete(viewsets.ModelViewSet):
model = CloudProviders
serializer_class = CloudProvidersAutocompleteSerializer
def get_queryset(self):
query= self.request.query_params.get('search')
if query :
data = CloudProviders.objects.filter(provider__contains=query)
return data
Не стоит больше открывать этот вопрос. Основная идея заключалась в том, чтобы добавить дополнительное свойство к модели, которое предоставляет необходимую информацию.
модель
class CloudProviders(models.Model):
provider = models.CharField(max_length=255, blank=True, null=True)
#id come by default
def _getProvider (self):
return self.provider
text = property(_getProvider )
...