Почему мой набор запросов возвращает только определенные свойства экземпляра модели в запросе get? - PullRequest
0 голосов
/ 11 июля 2019

Используя django 1.11, у меня есть модель с определенными свойствами, которую я хочу вернуть с запросом get (в моем случае get_queryset возвращает ответ на запрос get), и он только возвращает определенные свойства данного экземпляра модели (ака объект, ака запись).Я хочу, чтобы все свойства записи, а не только те, которые django по умолчанию решает дать мне, используя набор запросов.

Я пытался использовать -

ekg.objects.all().filter(user=request.user).values('user', 'id') 

- чтобы попытаться получитьконкретные значения возвращаются из базы данных безрезультатно.

Модели:

class Ekg(models.Model):
    user                = models.ForeignKey(User, on_delete=models.CASCADE, blank = False, null=False)

    ekgId               = models.AutoField(primary_key=True)
    sampling_rate       = models.DecimalField(max_digits=5, decimal_places=2, null = False, blank = False)
    dataTag2            = models.TextField(null = False, blank= False)
    dataTag3            = models.TextField(null = False, blank= False)
    timestamp           = models.DateTimeField(auto_now_add=True, null=False, blank=False) #date and time of the signal added to db

Просмотры:

class EkgAPIView(mixins.CreateModelMixin, generics.ListAPIView):

    permission_classes= [permissions.IsAuthenticated]
    authentication_classes= [JSONWebTokenAuthentication]

    serializer_class        = EkgSerializer

    def get_queryset(self):
        #return all
        qs = Ekg.objects.all().filter(user=request.user).filter(ekgId=2).values('user', 'ekgId', 'sampling_rate', 'dataTag2', 'dataTag3', 'timestamp')
        return qs

Скрипт, генерирующий выходные данные (игнорировать аутентификацию jwt, Response.textгенерирует выходные данные):

def do(method='get', data={}, is_json=True):
    headers = {"Content-Type": "application/json",
    "Authorization": "JWT " + token} #authorization header required with jwt per restconfig/main.py JWT_AUTH configuration}
    if is_json:
        headers['content-type'] = 'application/json'
        data = json.dumps(data)
    r = requests.request(method, EKG_ENDPOINT, data=data, headers=headers)
    print(r.text)
    print(r.status_code)#make sure its actually running
    return r



data = {

 }
do( data=data)

Вывод с использованием конечной точки API (не желательно):

[{
    "sampling_rate":"212.00",
    "dataTag2":"anotherDatatag2",
    "dataTag3":"anotherDatatag3"
}]

Ожидается (отметка времени не совсем в этом формате, но отправляет мне ответное сообщение):

[{
    "ekgId":"2", 
    "timestamp":"July 10, 2019 - 22:19:47",
    "sampling_rate":"212.00",
    "dataTag2":"anotherDatatag2",
    "dataTag3":"anotherDatatag3"
}]
...