Aaaaaaiii sim hein. Eu gosto é disso. Qualquer dia to querendo fazer uma aula ao vivo só pra poder trocar ideia com a galera que dá moral no canal. Abraço.
@@SamuelGoncalvesPython Bom dia, obrigado. no meu projeto tenho 3 tabelas estoque que mostra a quantidade de cada produto, estoque-entrada e uma estoque-saída e não estou conseguindo fazer a o valor de estoque de cada produto ser a soma das entradas menos a soma das saídas . se puder me dar orientação do que fazer. muito obrigado mesmo!
@@viniciushemura4747 mas como vc está tentando fazer? Na hora que a pessoa salva? - Faça um filtro só com um determinado produto na query. - Aplique o aggregate sum do campo que vc quer. - Armazene isso numa variável. Vc vai fazer o mesmo para as duas tabelas. Depois faz a subtração. Tenta ai nessa linha e me diga se foi. Qq coisa manda ai novamente.
@@SamuelGoncalvesPython Boa tarde, estou a tentando a alguns dias e não estou conseguindo progredir, consigo consulta e fazer a soma mas a variável de ele cria da um resultado que não consigo salvar, no banco. eu tenho 3 tabelas, uma com o valor da quantidade atual, uma para salvar os histórico de entrada de produtos e uma que salva o histórico de saída: Estava fazendo assim: def estoque_entrada(request): template_name = 'entrada.html' objects = Estoque.objects.filter() paginator = Paginator(objects, 15) page_number = request.GET.get('page') page_obj = paginator.get_page(page_number) produtos = Produto.objects.all() cont = 0 List = (Estoque.objects.annotate(qtd=Cast('entrada', IntegerField())) .values('produto', 'qtd') .order_by(Coalesce('produto', 'qtd').asc()) ) #print(List) for prod in produtos: cont = List.filter(produto=prod.id).values('produto').annotate(Sum('qtd')) print(cont) return render(request, template_name, {'page_obj': page_obj, 'List': List}) ----------------------------------------------------------------------------------------------------------------- Depois mudei para essa forma: para tentar salvar nas duas tabelas def estoque_entrada(request): if request.method == 'GET': form = Estoqueform() form2 = ProdutoForm() context = { 'form': form, 'form2': form2, } return render(request, 'estoque/estoque_form.html', context) else: form = Estoqueform(request.POST) produtos = Produto.objects.all() for prod in produtos: form2 = Estoque.objects.filter(produto_id__exact=prod.id).annotate(Sum('entrada')) print(form2) # if form.is_valid and form2.is_valid(): # estoque = form.save() # form = Estoqueform() # produdo = form2.save() # form2 = ProdutoForm() context = { 'form': form, 'form2': form2, } return render(request, 'estoque/estoque_form.html', context) ------------------------------------------------------------------------------------------------------------------------------------------- mas nem uma das duas formas esta perto do resultado que preciso. poderia me ajudar ? Obrigado pela atenção e ajuda até o momento!
@@viniciushemura4747 Primeira dica que eu te dou, para a maioria das coisas que você quiser fazer, divida o "problema" em "probleminhas". Não existe bala de prata. Por exemplo, se seu problema é "Salvar uma soma no banco". Então, seu primeiro "probleminha" é "Pegar a soma". Depois que vc fizer isso, vc vai se preocupar com o segundo probleminha: "Como atualizar um registro no banco". Pra ficar mais fácil, vai lá no github e cria um arquivo gist e compartilha comigo aqui. Pois assim eu posso ver o código editado e também te ajudar com alterações.
Muito obrigado, Marlon. No caso, é tudo isso ai e um pouco mais. rsrsrs Leitura de livros, experiências profissionais, minhas próprias dúvidas, dúvidas de pessoas que ajudo, documentação, experiência trocadas com pessoas que sabem coisas que não sei, e assim por diante. Mas o mais importante é: PRATICAR. Sempre que aprendo algo, tento já fazer e ver funcionando. Isso ajuda a lembrar bem. Grande abraço, camarada.
Obrigado pela explicação, me ajudou muito e ganhou mais um escrito. Queria saber como ser faz aggregate com Timefield, pesquisei mais nao achei uma resposta
Muito obrigado, Dalmo. Fico muito feliz com você aqui no canal. Me fala mais sobre o motivo de vc querer fazer isso, as vezes a gente consegue chegar em uma solução legal juntos. Mas me explique o problema que tem e onde quer chegar. E a parte técnica a gente vai descobrindo.
@@SamuelGoncalvesPython Eu que agradeço, com seus vídeos eu to conseguindo tira muitas duvidas. Vou tenta explicar melhor a minha duvida. Tenho uma tabela com os seguinte dados ---------------------------- name | horas | --------------------------- Bruno | 12:34 | Lana | 06:01 | Bruno | 09:00 | Luan | 10:05 | Bruno | 00:34 | Lana | 00:59 | --------------------------- no meu models. name = models.CharField(max_length=200, null=True, blank=True) user_time = models.TimeField(auto_now=False, auto_now_add=False, null=True) meu views. customer = Profile.objects.annotate(total_time=(Sum('pireps__user_time')) erro que aparece: You cannot use Sum, Avg, StdDev, and Variance aggregations on date/time fields in sqlite3 since date/time is saved as text. Queria somar a quantidade de horas de cada usuário. Pesquisei pela internet mas não achei a solução. Tentei muda para DurationField mais para o que eu quero não serve. Teria como me da um norte?
@@noobdaaviacao Bom demais. Cara, olhando para seu erro eu sugiro que vc faça um teste utilizando outro banco de dados que não seja o sqlite3. Tenta instalar e utilizar o postgres, por exemplo. Pois no erro está dizendo que ele não consegue somar por causa da forma que o sqlite3 salva o tipo "hora". Tenta ai e me fala se deu certo. Se não der, a gente tenta outra coisa. Abraço.
Parabéns pelo vídeo Samuel, poderia me tirar uma dúvida como posso realizar no Django um campo chamado TOTAL com o resultado de subtotais de uma coluna. Desde já muito obrigado e parabéns pelo canal.
Muito obrigado, Andrey. Veja o vídeo de novo com calma. Sem ficar pulando que eu ensino isso ai. Mas para facilitar a sua vida, nessa parte eu faço com o AVG, vc vai fazer a mesma coisa substituindo pelo SUM. ua-cam.com/video/2vH3y53FsGI/v-deo.html Mas dá uma força ai. Assiste o vídeo completo que vale a pena. Abraço.
Olá Samuel! Você altera o seu settings para utilizar esse python console? Quando tento importar um modelo aparece o seguinte erro para mim: from pessoa.models import Pessoas Traceback (most recent call last): File "C:\Users\Lucas Nigro\AppData\Local\Programs\Python\Python310\lib\code.py", line 90, in runcode exec(code, self.locals) File "", line 1, in File "C:\Program Files\JetBrains\PyCharm Community Edition 2022.1.3\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import module = self._system_import(name, *args, **kwargs) File "C:\Users\Lucas Nigro\OneDrive - GIOLASER CLINICA DE ESTETICA\LUCAS\ESTUDO LUCAS\PycharmProjects\ProjetoErpEstetica\pessoa\models.py", line 21, in class Pessoas(models.Model): File "C:\Users\Lucas Nigro\.virtualenvs\ProjetoErpEstetica\lib\site-packages\django\db\models\base.py", line 127, in __new__ app_config = apps.get_containing_app_config(module) File "C:\Users\Lucas Nigro\.virtualenvs\ProjetoErpEstetica\lib\site-packages\django\apps egistry.py", line 260, in get_containing_app_config self.check_apps_ready() File "C:\Users\Lucas Nigro\.virtualenvs\ProjetoErpEstetica\lib\site-packages\django\apps egistry.py", line 137, in check_apps_ready settings.INSTALLED_APPS File "C:\Users\Lucas Nigro\.virtualenvs\ProjetoErpEstetica\lib\site-packages\django\conf\__init__.py", line 87, in __getattr__ self._setup(name) File "C:\Users\Lucas Nigro\.virtualenvs\ProjetoErpEstetica\lib\site-packages\django\conf\__init__.py", line 67, in _setup raise ImproperlyConfigured( django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings. Abs!
Se vc for no momento 9:18 do vídeo, vc vai ver meu terminal no "início". Note que tem quatro comandos que foram executados antes de eu começar. O meu executa sozinho pq eu customizei. Mas se vc quiser, pode, simplesmente, rodar esses quatro comandos e o seu também vai funcionar. A única observação é que no terceiro comando tem o caminho do settings do meu projeto, vc vai substituir pelo caminho do settings no seu projeto.
Se vc passar uma lista de "objeto" onde tem o annotate "preco_medio", vc pegaria dentro de um "for" e seria: {% for objeto in objetos %} {{ objeto.preco_medio }} {% endfor %}
Surreal meu velho, meus parabéns. Didática incrivel.🤩🤩🤩🤩
Muito obrigado pelo feedback, camarada.
Abraço.
Já chego deixando o like, conteúdo assim de qualidade é raríssimo! parabéns!
É disso que eu gosto, Jonatha.
Sempre presente e dando moral aqui no canal.
Grande abraço.
Chegando dando vuadora no like!!
Aaaaaaiii sim hein.
Eu gosto é disso.
Qualquer dia to querendo fazer uma aula ao vivo só pra poder trocar ideia com a galera que dá moral no canal.
Abraço.
Sua didática é muito boa! Parabéns
Muito obrigado, Vivian.
Abraço.
Boa noite, seus vídeos estão salvando meu trabalho da faculdade, muito obrigado!!!
Que maravilha, Vinicius.
Bom demais.
Boa sorte ai no seu projeto.
Precisando de alguma coisa, só falar.
Abraço.
@@SamuelGoncalvesPython Bom dia, obrigado.
no meu projeto tenho 3 tabelas estoque que mostra a quantidade de cada produto, estoque-entrada e uma estoque-saída e não estou conseguindo fazer a o valor de estoque de cada produto ser a soma das entradas menos a soma das saídas .
se puder me dar orientação do que fazer.
muito obrigado mesmo!
@@viniciushemura4747 mas como vc está tentando fazer?
Na hora que a pessoa salva?
- Faça um filtro só com um determinado produto na query.
- Aplique o aggregate sum do campo que vc quer.
- Armazene isso numa variável.
Vc vai fazer o mesmo para as duas tabelas.
Depois faz a subtração.
Tenta ai nessa linha e me diga se foi.
Qq coisa manda ai novamente.
@@SamuelGoncalvesPython Boa tarde, estou a tentando a alguns dias e não estou conseguindo progredir, consigo consulta e fazer a soma mas a variável de ele cria da um resultado que não consigo salvar, no banco.
eu tenho 3 tabelas, uma com o valor da quantidade atual, uma para salvar os histórico de entrada de produtos e uma que salva o histórico de saída:
Estava fazendo assim:
def estoque_entrada(request):
template_name = 'entrada.html'
objects = Estoque.objects.filter()
paginator = Paginator(objects, 15)
page_number = request.GET.get('page')
page_obj = paginator.get_page(page_number)
produtos = Produto.objects.all()
cont = 0
List = (Estoque.objects.annotate(qtd=Cast('entrada', IntegerField()))
.values('produto', 'qtd')
.order_by(Coalesce('produto', 'qtd').asc())
)
#print(List)
for prod in produtos:
cont = List.filter(produto=prod.id).values('produto').annotate(Sum('qtd'))
print(cont)
return render(request, template_name, {'page_obj': page_obj, 'List': List})
-----------------------------------------------------------------------------------------------------------------
Depois mudei para essa forma: para tentar salvar nas duas tabelas
def estoque_entrada(request):
if request.method == 'GET':
form = Estoqueform()
form2 = ProdutoForm()
context = {
'form': form, 'form2': form2,
}
return render(request, 'estoque/estoque_form.html', context)
else:
form = Estoqueform(request.POST)
produtos = Produto.objects.all()
for prod in produtos:
form2 = Estoque.objects.filter(produto_id__exact=prod.id).annotate(Sum('entrada'))
print(form2)
# if form.is_valid and form2.is_valid():
# estoque = form.save()
# form = Estoqueform()
# produdo = form2.save()
# form2 = ProdutoForm()
context = {
'form': form, 'form2': form2,
}
return render(request, 'estoque/estoque_form.html', context)
-------------------------------------------------------------------------------------------------------------------------------------------
mas nem uma das duas formas esta perto do resultado que preciso.
poderia me ajudar ?
Obrigado pela atenção e ajuda até o momento!
@@viniciushemura4747 Primeira dica que eu te dou, para a maioria das coisas que você quiser fazer, divida o "problema" em "probleminhas".
Não existe bala de prata.
Por exemplo, se seu problema é "Salvar uma soma no banco".
Então, seu primeiro "probleminha" é "Pegar a soma".
Depois que vc fizer isso, vc vai se preocupar com o segundo probleminha: "Como atualizar um registro no banco".
Pra ficar mais fácil, vai lá no github e cria um arquivo gist e compartilha comigo aqui.
Pois assim eu posso ver o código editado e também te ajudar com alterações.
Excelente Samuel! Novamente ajudou muito!
Maravilha. Fico feliz com isso.
Grande abraço.
Explicou muito bem, parabéns.
Muito obrigado, Diego.
Abraço.
Valeu pelo vídeo. Muito bem explicado e exemplificado.
Obrigado pelo feedback, camarada.
Grande abraço.
Parabéns pelo conteúdo.
Muito obrigado, Eduardo.
Excelente, Samuel! O conteúdo que você disponibiliza sempre me ajudou imensamente na resolução de meus problemas. Parabéns e muito obrigado!
Que maravilha, Mauricio. Fico feliz em saber.
Sucesso ai nos seus projetos.
Grande abraço.
Muito legal, espero que o canal tenha continuidade
Muito obrigado, Vladimir.
Inclusive, você pode sugerir temas para os próximos vídeos.
Abraço.
muito com seus videos
Muito obrigado, camarada.
Sucesso pra vc ai. Abraço.
Caramba! Muto bom!!
Obrigado, camarada.
Abraço.
muito bom
Muito obrigado, camarada.
Grande abraço.
boa aula.
Muito obrigado, Leonardo.
Abraço.
Obrigado, não conhecia esses comandos e gostei muito.
Top demais que aprendeu algo novo.
Vamo que vamo.
Muito bom o conteúdo do vídeo. Aliás o canal tem várias outras excelentes aulas para quem busca aprender Django pelo UA-cam. Obrigado aí Samuel!
Eu que agradeço o feedback maravilhoso, camarada.
Um grande abraço e toda sorte nos seus projetos ai.
obrigado, me ajudou muito!
Que bom que ajudou. Fico muito feliz em saber disso.
Abraço.
Aula muito útil 👏
Muito obrigado, camarada.
Top. Muito esse video
Feliz que tenha gostado, Nonato.
Abraço.
Excelente video
Muito obrigado, Leonardo.
Abraço.
muito boa a aula, parabéns
Muito obrigado, Gabriel
O vídeo já valeu pela introdução. Muito bom, obrigado pelos conteúdos.
Que bom, Tiago.
Obrigado pelo feedback.
Abraço.
Valeu Samuel, conteúdo informativo e transmitido com clareza, como de costume.
Muito obrigado, camarada.
Muito bom receber seu feedback.
Abraço.
Boa cara!
Vlw Rodolfo.
Fique a vontade para mandar sugestões.
Abraço.
Agora sim ficou bem claro! Obrigado pelo conteúdo!
Que bom que ajudou.
Abraço, camarada.
Você é muito bom! Uma pergunta, você vai lendo as documentações e estudando ou foi aprendendo com o tempo e com suas próprias dúvidas?
Muito obrigado, Marlon.
No caso, é tudo isso ai e um pouco mais. rsrsrs
Leitura de livros, experiências profissionais, minhas próprias dúvidas, dúvidas de pessoas que ajudo, documentação, experiência trocadas com pessoas que sabem coisas que não sei, e assim por diante.
Mas o mais importante é: PRATICAR. Sempre que aprendo algo, tento já fazer e ver funcionando.
Isso ajuda a lembrar bem.
Grande abraço, camarada.
Muito bom como sempre Samuel! Parabéns!
Muito obrigado, Higor.
Grande abraço.
Muito boa aula, assim como as outras. parabéns Samuel, você vai fazer muito sucesso.
Muito obrigado, Luiz.
Que Deus te ouça. rsrrs
Grande abraço.
Obrigado pela explicação, me ajudou muito e ganhou mais um escrito. Queria saber como ser faz aggregate com Timefield, pesquisei mais nao achei uma resposta
Muito obrigado, Dalmo. Fico muito feliz com você aqui no canal.
Me fala mais sobre o motivo de vc querer fazer isso, as vezes a gente consegue chegar em uma solução legal juntos.
Mas me explique o problema que tem e onde quer chegar. E a parte técnica a gente vai descobrindo.
@@SamuelGoncalvesPython Eu que agradeço, com seus vídeos eu to conseguindo tira muitas duvidas.
Vou tenta explicar melhor a minha duvida.
Tenho uma tabela com os seguinte dados
----------------------------
name | horas |
---------------------------
Bruno | 12:34 |
Lana | 06:01 |
Bruno | 09:00 |
Luan | 10:05 |
Bruno | 00:34 |
Lana | 00:59 |
---------------------------
no meu models.
name = models.CharField(max_length=200, null=True, blank=True)
user_time = models.TimeField(auto_now=False, auto_now_add=False, null=True)
meu views.
customer = Profile.objects.annotate(total_time=(Sum('pireps__user_time'))
erro que aparece:
You cannot use Sum, Avg, StdDev, and Variance aggregations on date/time fields in sqlite3 since date/time is saved as text.
Queria somar a quantidade de horas de cada usuário.
Pesquisei pela internet mas não achei a solução. Tentei muda para DurationField mais para o que eu quero não serve.
Teria como me da um norte?
@@noobdaaviacao Bom demais.
Cara, olhando para seu erro eu sugiro que vc faça um teste utilizando outro banco de dados que não seja o sqlite3.
Tenta instalar e utilizar o postgres, por exemplo.
Pois no erro está dizendo que ele não consegue somar por causa da forma que o sqlite3 salva o tipo "hora".
Tenta ai e me fala se deu certo.
Se não der, a gente tenta outra coisa.
Abraço.
Parabéns pelo vídeo Samuel, poderia me tirar uma dúvida como posso realizar no Django um campo chamado TOTAL com o resultado de subtotais de uma coluna.
Desde já muito obrigado e parabéns pelo canal.
Muito obrigado, Andrey.
Veja o vídeo de novo com calma. Sem ficar pulando que eu ensino isso ai.
Mas para facilitar a sua vida, nessa parte eu faço com o AVG, vc vai fazer a mesma coisa substituindo pelo SUM.
ua-cam.com/video/2vH3y53FsGI/v-deo.html
Mas dá uma força ai. Assiste o vídeo completo que vale a pena.
Abraço.
Olá Samuel!
Você altera o seu settings para utilizar esse python console?
Quando tento importar um modelo aparece o seguinte erro para mim:
from pessoa.models import Pessoas
Traceback (most recent call last):
File "C:\Users\Lucas Nigro\AppData\Local\Programs\Python\Python310\lib\code.py", line 90, in runcode
exec(code, self.locals)
File "", line 1, in
File "C:\Program Files\JetBrains\PyCharm Community Edition 2022.1.3\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
File "C:\Users\Lucas Nigro\OneDrive - GIOLASER CLINICA DE ESTETICA\LUCAS\ESTUDO LUCAS\PycharmProjects\ProjetoErpEstetica\pessoa\models.py", line 21, in
class Pessoas(models.Model):
File "C:\Users\Lucas Nigro\.virtualenvs\ProjetoErpEstetica\lib\site-packages\django\db\models\base.py", line 127, in __new__
app_config = apps.get_containing_app_config(module)
File "C:\Users\Lucas Nigro\.virtualenvs\ProjetoErpEstetica\lib\site-packages\django\apps
egistry.py", line 260, in get_containing_app_config
self.check_apps_ready()
File "C:\Users\Lucas Nigro\.virtualenvs\ProjetoErpEstetica\lib\site-packages\django\apps
egistry.py", line 137, in check_apps_ready
settings.INSTALLED_APPS
File "C:\Users\Lucas Nigro\.virtualenvs\ProjetoErpEstetica\lib\site-packages\django\conf\__init__.py", line 87, in __getattr__
self._setup(name)
File "C:\Users\Lucas Nigro\.virtualenvs\ProjetoErpEstetica\lib\site-packages\django\conf\__init__.py", line 67, in _setup
raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
Abs!
Se vc for no momento 9:18 do vídeo, vc vai ver meu terminal no "início".
Note que tem quatro comandos que foram executados antes de eu começar.
O meu executa sozinho pq eu customizei.
Mas se vc quiser, pode, simplesmente, rodar esses quatro comandos e o seu também vai funcionar.
A única observação é que no terceiro comando tem o caminho do settings do meu projeto, vc vai substituir pelo caminho do settings no seu projeto.
No template Django eu acesso esse valor pelo nome da variável {{ preco_medio }} ? Ou tem outra forma?
Se vc passar uma lista de "objeto" onde tem o annotate "preco_medio", vc pegaria dentro de um "for" e seria:
{% for objeto in objetos %}
{{ objeto.preco_medio }}
{% endfor %}
evitei usar pandas com seu video kkkk
Hahahahaha
Muito boa essa.
Mas realmente o ORM do django é muito bom. Ajuda demais da conta.
Abraço.