Ir ao conteúdo

Posts recomendados

Postado

Olá pessoal!

Estou criando um PDV usando Django, chegou uma parte aqui que os itens não estão aparecendo, sendo que já os cadastrei... Alguém poderia me ajudar?

Segue os códigos:

 

Esse aqui é a parte de models, que está dentro da app de 'cadastro'. Quero que essas informações aparecam numa outra app chamada 'paginas' dentro, claro, da pasta chamada 'templates'.

 

from django.db import models

class ListaProdutos(models.Model):
    nome_produto = models.CharField(max_length=50, verbose_name='Produto')
    quantidade_produto = models.IntegerField(verbose_name='Qntd.')
    custo_venda = models.CharField(max_length=10, verbose_name='Custo/Venda')
    fornecedor = models.CharField(max_length=50, verbose_name='Fornecedor')
    data_adicao = models.DateTimeField(verbose_name='Data de Adição')

    def __str__(self):
        return "{} {} {} {} {}".format(self.nome_produto, self.quantidade_produto, self.custo_venda, self.fornecedor, self.data_adicao)

class ListaDespesas(models.Model):
    nome_despesa = models.CharField(max_length=50, verbose_name='Despesas')
    quantidade_despesa = models.CharField(max_length=50, verbose_name='Qntd.')
    custo = models.IntegerField(verbose_name='Custo')
    tipo_gasto = models.CharField(max_length=50, verbose_name='Tipo de Gasto')
    data_atualizacao = models.DateTimeField(verbose_name='Data de Atualização')

    def __str__(self):
        return "{} {} {} {} {}".format(self.nome_despesa, self.quantidade_despesa, self.custo, self.tipo_gasto, self.data_atualizacao)

 

 

Ainda na app 'cadastro' só que na parte de urls:

 

from django.urls import path
from .views import ProdutoCreate, DespesaCreate
from .views import ProdutoUpdate, DespesaUpdate
from .views import ProdutoDelete, DespesaDelete
from .views import ProdutoList, DespesaList



urlpatterns = [
    path('cadastrar/produto', ProdutoCreate.as_view(), name='cadastrar-produto'),
    path('cadastrar/despesas', DespesaCreate.as_view(), name='cadastrar-despesa'),

    path('editar/produto/<int:pk>/', ProdutoUpdate.as_view(),name='editar-produto'),
    path('editar/despesa/<int:pk>', DespesaUpdate.as_view(),name='editar-despesa'),

    path('excluir/produto/<int:pk>/', ProdutoDelete.as_view(),name='excluir-produto'),
    path('excluir/despesa/<int:pk>', DespesaDelete.as_view(),name='excluir-despesa'),
    
    path('gastos/',ProdutoList.as_view(), name='lista-produto'),
    path('gastos/',DespesaList.as_view(), name='lista-despesa'),


]

 

 

Em 'cadastro' na parte de views:

 

from multiprocessing import context
from django.views.generic import TemplateView
from django.views.generic.edit import CreateView, UpdateView, DeleteView
from django.views.generic.list import ListView
from .models import ListaDespesas, ListaProdutos
from django.urls import reverse_lazy




""" Views """

class ProdutoCreate(CreateView):
    model = ListaProdutos
    fields = ['nome_produto', 'quantidade_produto', 'custo_venda', 'fornecedor', 'data_adicao']
    template_name = 'cadastro/form.html'
    success_url = reverse_lazy('vendas')

class DespesaCreate(CreateView):
    model = ListaDespesas
    fields = ['nome_despesa', 'quantidade_despesa', 'custo', 'tipo_gasto', 'data_atualizacao']
    template_name = 'cadastro/form.html'
    success_url = reverse_lazy('vendas')


""" Update """

class ProdutoUpdate(UpdateView):
    model = ListaProdutos
    fields = ['nome_produto', 'quantidade_produto', 'custo_venda', 'fornecedor', 'data_adicao']
    template_name = 'cadastro/form.html'
    success_url = reverse_lazy('vendas')

class DespesaUpdate(UpdateView):
    model = ListaDespesas
    fields = ['nome_despesa', 'quantidade_despesa', 'custo', 'tipo_gasto', 'data_atualizacao']
    template_name = 'cadastro/form.html'
    success_url = reverse_lazy('vendas')


""" Delete """

class ProdutoDelete(DeleteView):
    model = ListaProdutos
    template_name = 'cadastro/form-excluir.html'
    success_url = reverse_lazy('vendas')

class DespesaDelete(UpdateView):
    model = ListaDespesas
    template_name = 'cadastro/form-excluir.html'
    succes_url = reverse_lazy('vendas')


""" Lista """

class ProdutoList(ListView):
    model = ListaProdutos
    template_name = 'paginas/gastos.html'

class DespesaList(ListView):
    model = ListaDespesas
    template_name = 'paginas/gastos.html'

 

 

Por fim, dentro da app 'paginas', dentro da pasta templates, dentro do diretório 'paginas', o template 'gastos.html':

 

{% extends 'paginas/modelo.html' %}
{% load static %}

{% block titulo %}
<title>PDV|Gastos</title>
{% endblock %}

{% block conteudo %}

<div class="home_content">
    <div class="conteudo_pagina">

        <div class="table-responsive">
            <table class="table table-striped">
                <tr>
                    <th>Código</th>
                    <th>Produto</th>
                    <th>Qntd.</th>
                </tr>

                {% for produto in object_list %}

                <tr>
                    <td>{{ produto.pk }}</td>
                    <td>{{ produto.nome_produto }}</td>
                    <td>{{ produto.quantidade_produto }}</td>
                </tr>

                {% empty %}
                <tr>
                    <td colspan="3">Nenhum campo registrado</td>
                </tr>


                {% endfor %}

                <div class="table-responsive">
                    <table class="table table-striped">
                        <tr>
                            <th>Despesa</th>
                            <th>Qntd.</th>
                            <th>Custo</th>
                        </tr>
        
                        {% for despesa in object_list %}
        
                        <tr>
                            <td>{{ despesa.nome_despesa }}</td>
                            <td>{{ despesa.quantidade_despesa }}</td>
                            <td>{{ despesa.custo }}</td>
                        </tr>
        
                        {% empty %}
                        <tr>
                            <td colspan="3">Nenhum campo registrado</td>
                        </tr>
        
        
                        {% endfor %}






            </table>
        </div>











    </div>
</div>




{% endblock %}

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...