6.2. Usando Views baseadas em Funções (FBV)¶
Usando Views baseadas em Funções, a maneira de ser fazer é meio manual, mas é bastante simples usar os resultados da mesma maneira.
6.2.1. Listar¶
from folder_project.clients import api_client
...
def get_orders(request):
response = api_client.order.orders.list()
template = 'fbv/list.html'
context = {"object_list": response.as_obj().results}
return render(request, template, context)
Nota
The usage example assumes that the endpoint /order/orders/
Waiting the response {‘count’: , ‘next’: None, ‘previous’: None, ‘results’: []}
6.2.2. Detalhe¶
from folder_project.clients import api_client
...
def get_order(request, pk):
response = api_client.order.orders.get(id=pk)
template = 'fbv/detail.html'
context = {"object": response.as_obj()}
return render(request, template, context)
Nota
O Exemplo assume que o endpoint é /order/orders/
6.2.3. Criar¶
from folder_project.clients import api_client
...
def create_order(request, pk):
template = 'fbv/form.html'
form = TestForm(request.POST or None)
if form.is_valid():
response = api_client.order.orders.create(data=form.cleaned_data)
return redirect('fbv:index')
context = {"form": form}
return render(request, template, context)
Nota
O Exemplo assume que o endpoint é /order/orders/
6.2.4. Atualizar¶
from folder_project.clients import api_client
...
def update_order(request, pk):
template = 'fbv/form.html'
response = api_client.order.orders.get(id=pk)
form = TestForm(request.POST or None, initial=response.as_dict())
if form.is_valid():
response = api_client.order.orders.update(id=pk, data=form.cleaned_data, partial=False)
return redirect('fbv:index')
context = {
"object": response.as_obj(),
"form": form
}
return render(request, template, context)
Nota
O Exemplo assume que o endpoint é /order/orders/
6.2.5. Deletar¶
from folder_project.clients import api_client
...
def delete_order(request, pk):
template = 'fbv/delete.html'
response = api_client.order.orders.get(id=pk)
if request.method == 'POST':
api_client.order.orders.delete(id=pk)
return redirect('fbv:index')
context = {"object": response.as_obj()}
return render(request, template, context)
Nota
O Exemplo assume que o endpoint é /order/orders/