Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

990
Visualizações
django rest framework: Get url path variable in a view

I have to pass the product_id (which is a string) into a view. There I have to do some DB operations based on the product id. How can I get that product id in that view? Actually what should be the parameter in the class ProductDetailConfiguration view? Now I am passing viewsets.ModelViewSet. Actually, this API call is not completely related to any model.

# urls.py

  url(r'^product-configuration/(?P<product_id>[\w-]+)/$', views.ProductDetailConfiguration, name='product-configuration'),

# views.py

class ProductDetailConfiguration(viewsets.ModelViewSet):

    queryset = Product.objects.all()

    def get_queryset(self, **kwargs):
      
        queryset = Product.objects.all()
        product_id = self.request.get('product_id', None)
        #filter query set based on the product_id
        return queryset

    serializer_class = ProductConfigurationSerializer
about 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

The URL parameters are available in self.kwargs.
From the documentation:

Filtering against the URL

Another style of filtering might involve restricting the queryset based on some part of the URL.

For example if your URL config contained an entry like this:

url('^purchases/(?P<username>.+)/$', PurchaseList.as_view()),

You could then write a view that returned a purchase queryset filtered by the username portion of the URL:

class PurchaseList(generics.ListAPIView):
   serializer_class = PurchaseSerializer

   def get_queryset(self):
       """
       This view should return a list of all the purchases for
       the user as determined by the username portion of the URL.
       """
       username = self.kwargs['username']
       return Purchase.objects.filter(purchaser__username=username)
about 4 years ago · Santiago Trujillo Relatório

0

You have to use lookup_field in your views to get product_id and the view should not belongs to any model. Here I already answer a question like yours using django rest framework to return info by name

Hope this will help to solve your problem.

about 4 years ago · Santiago Trujillo Relatório

0

This is my approach:

Update URL:

url(r'^product-configuration$', views.ProductDetailConfiguration, name='product-configuration'),

In view.py:

class ProductDetailConfiguration(viewsets.ModelViewSet):
    lookup_field = 'product_id'
    serializer_class = ProductConfigurationSerializer

    def retrieve(request, product_id=None, *args, **kwargs):
        queryset = self.get_queryset()
        # Filter with produc_id
        # print(product_id)
        # Return Response
about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda