Django: Как получить идентификатор в представлениях на основе классов? - PullRequest
0 голосов
/ 12 марта 2019

views.py

from paitent.mixini import HttpResponseMixin,SerializeMixin
from paitent.models import Paitent_Details

class PaitentCRUDCBV(View, HttpResponseMixin, SerializeMixin):

   def get(self, id, *args, **kwargs):
      paitent = Paitent_Details.objects.get(id=id)
      json_data = self.render_to_serialize([paitent,])
      return self.render_to_http_response(json_data)

urls.py

urlpatterns = [
   url(r'^api/json',views.PaitentCRUDCBV.as_view()),
]

Мое требование основано на id Мне нужно выбрать конкретную базу данных формы строки, со стороны внешнего интерфейса я передаю идентификатор в URL, например: (url: "http://127.0.0.1:8000/api/json/?id=2").But Я не нахожу идентификатор в моем классе не знаю, где я делаю неправильно. Пожалуйста, помогите мне.

Ответы [ 2 ]

0 голосов
/ 12 марта 2019
1)I have edited your following code, you have to pass *request* in your function,
2)Inside the function calling request.query_params.get, you will get parameters value from the url  



from paitent.mixini import HttpResponseMixin,SerializeMixin
from paitent.models import Paitent_Details

class PaitentCRUDCBV(View, HttpResponseMixin, SerializeMixin):

   def get(self, request, *args, **kwargs):
      id=self.request.query_params.get('id')
      paitent = Paitent_Details.objects.get(id=id)
      json_data = self.render_to_serialize([paitent,])
      return self.render_to_http_response(json_data)
0 голосов
/ 12 марта 2019

Вы можете использовать query_params в представлении:

def get(self, request): id = self.request.query_params.get('id')<br> ....

Более подробную информацию вы можете получить из документации

...