2015-10-07 2 views
4

Так что у меня это 2 модели:Джанго Rest Framework, передавая атрибуты в URL

class ProductQualityMonitor(models.Model): 

    product_name = models.CharField(..) 
    area = models.CharField(...)) 
    timeslot = models.DateTimeField(...) 

    def get_measured_parameters(self): 
     (...) 

class QualityParameter(models.Model): 
    PARAMETER_CHOICES = (
     (MEAN, MEAN), 
     (MEDIAN, MEDIAN), 
     (MAXIMUM, MAXIMUM), 
     (MINIMUM, MINIMUM), 
    ) 

    name = models.CharField(max_length=50, choices=PARAMETER_CHOICES) 
    value = models.FloatField() 
    product = models.ForeignKey(ProductQualityMonitor, 
           related_name="parameters") 

мне нужно, чтобы получить некоторые сводные статистические данные о параметрах качества. У меня есть метод, который получает некоторые атрибуты, такие как диапазон дат, и агрегирует статистику по десяти для каждого параметра, а в конце возвращает объект json со всей совокупной статистикой.

Я сомневаюсь: могу ли я вызвать этот метод, передав параметры, которые нужен методу в URL-адресе, и посмотреть результаты? И, если смогу, как мне это сделать?

Извините, если мои объяснения немного грязные, я новичок в Django.

ответ

0

Вы можете передать GET параметры в вашем URL и получить их на ваш взгляд

your.url.com?param1=value1&param2=value2 

Затем на ваш взгляд

from rest_framework.views import APIView 

class YourView(APIView): 


    def get(self,request): 
     parameters = request.query_params 
     #use your URL parameters 
+0

Извините, глупый вопрос, но ... как определить URL-адрес в url.py? Потому что url (r '^ test/$', views.YourView.as_view()) не работает. –

+0

вам не нужно указывать параметры url в вашем 'urls.py', если вы передаете их через GET с помощью'? '. Попробуйте этот url (r '^ test/$', views.YourView.as_view ({'get': 'get'})) ' – levi

+0

У меня этот вид, как вы сказали: класс YourView (APIView): Защита получить (самоощущение, запрос): параметров = request.data возвращения отклика (параметры) И в URL: URL (г '^ тест/$', views.YourView.as_view()) И тогда я называю : http://127.0.0.1:8000/test/?param1=Euro, но ответ кажется пустым. Я пробовал последнее предложение, но дает ошибку –

0

Передайте параметры в URL GET

Viewsets.py

from rest_framework import status 
from rest_framework import viewsets 

class YourViewSet(viewsets.ViewSet): 
    def get_queryset(self): 
     queryset = super(YourViewset, self).get_queryset() 
     id = self.request.query_params.get('id', None) 
     # do some operations return queryset 
Смежные вопросы