Поиск модели Django с использованием двух или более разных ключейPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Поиск модели Django с использованием двух или более разных ключей

Сообщение Anonymous »

В первый раз разработал приложение Django, и я пытаюсь сделать что-то несколько нестандартное ... < /p>

Есть ли способ настроить представление, которое позволит Пользователь, чтобы найти определенную модель одним из двух уникальных атрибутов модели. Br />

Код: Выделить всё

urlpatterns = [
path('api/somemodel//', views.SomeModelDetailView.as_view())
path('api/somemodel//', views.SomeModelDetailView.as_view())
]
< /code>

Упрощенная модель примера ... как идентификатор, так и имя гарантированно будут уникальными. Also, by convention, my data is entered in such a way that a name will always be a string and never an integer

from django.db import models

class SomeModel(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=100, unique=True)
< /code>

В настоящее время у меня есть работа со следующим представлением ... < /p>

from rest_framework import generics
from rest_framework import status
from rest_framework.response import Response

from . import models

class SomeModelDetailView(generics.RetrieveAPIView):
queryset = models.SomeModel.objects.all()
serializer_class = serializers.SomeModelSerializer

def get(self, request, model_name=None, model_id=None, format=None):

field = None
key = None
try:
if model_id:
field = "model_id"
key = model_id
m = models.SomeModel.objects.get(id=model_id)
elif model_name:
field = "model_name"
key = model_name
m = models.SomeModel.objects.get(name=model_name)
else:
return Response("Neither model_id nor model_name were provided", status=status.HTTP_400_BAD_REQUEST)
except models.SomeModel.DoesNotExist:
return Response("Unknown {field}: {key}".format(field=field, key=key), status=status.HTTP_400_BAD_REQUEST)

serializer_class = self.get_serializer_class()
serializer = serializer_class(m)

return Response(serializer.data)
Тем не менее, мне интересно, есть ли лучший способ, который больше вписывается в просмотр / (или другой) DRF Механик. < /p>

Есть идеи? < /p>

Подробнее здесь: https://stackoverflow.com/questions/519 ... erent-keys
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»