javascript – Alterar Icon Font Awesome via JS – Botão Menu

Estou aprendendo JS e não consigo encontrar uma solução para o problema que eu mesmo criei tentando fazer algo melhor que o professor fez no curso

A situação é a seguinte: Tenho um botão que abre e fecha um menu lateral e fiz ele com um ícone do Font Awesome, agora preciso que quando clique nele ele troque a classe desse ícone e ao clicar novamente retorne para a classe inicial.

primeira
segunda
terceira

Na solução que tentei ele apenas se altera a primeira vez

HTML

<body>
    <div class="container">
        <div class="hamburguer"><i id="icon-hamburguer" class="fas fa-bars"></i>
</div>

JS

var hamburguer = document.querySelector(".hamburguer");

hamburguer.addEventListener("click", function () {
  document.querySelector(".container").classList.toggle("show-menu");
  document.getElementById("icon-hamburguer").className = "fas fa-times";
});

python – Alterar formato de data no Django para dd/mm/yy

Olá! Eu to tentando criar uma aplicação com Django Rest para um desafio de estágio. Mas eu me deparo com um problema que não será tolerado. Preciso que a data inserida no DateField responda ao padrão brasileiro DD/MM/YYYY, mas só consigo alterá-lo para MM/DD/YY no máximo.

Meu models da app core:

from django.db import models
from organizadores.models import Organizadore


# Create your models here.
class Evento(models.Model):
    nome = models.CharField(max_length=100)
    organizadores = models.ManyToManyField(Organizadore)
    data_inicio = models.DateField(null=False)
    data_fim = models.DateField(null=False)
    confirmado = models.BooleanField(default=False)

    def __str__(self):
        return self.nome

Settings do projeto:

from pathlib import Path

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure-@0z5o*9z7hd6@b-=_3w!x+i)bg^0*q#q!qw258wvsp(jq(2-r$'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = ('*')


# Application definition

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
    'core',
    'organizadores'
)

MIDDLEWARE = (
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

ROOT_URLCONF = 'eventos.urls'

TEMPLATES = (
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': (),
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': (
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ),
        },
    },
)

WSGI_APPLICATION = 'eventos.wsgi.application'


# Database
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}


# Password validation
# https://docs.djangoproject.com/en/3.2/ref/settings/#auth-password-validators

AUTH_PASSWORD_VALIDATORS = (
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
)


# Internationalization
# https://docs.djangoproject.com/en/3.2/topics/i18n/

LANGUAGE_CODE = 'pt-br'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = False

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.2/howto/static-files/

STATIC_URL = '/static/'

# Default primary key field type
# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field

DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

DATE_INPUT_FORMATS = ('%d/%m/%Y')

Como está nas configurações, já tentei usar o DATE_INPUT_FORMATS, USE_L1ON = False e não consigo de jeito nenhum achar como editar isso. Já vi pessoas sugerindo usar DateField(widget=forms.DateInput(format = '%d/%m/%Y'), input_formats=settings.DATE_INPUT_FORMATS), mas essas kwargs não existem e apontam erro no código:
widget=forms.DateInput(format = '%d/%m/%Y'), input_formats=settings.DATE_INPUT_FORMATS

Não sei mais o que fazer, já tentei mudar a linguagem pra pt-br, en-uk e en-GB, mas em nenhum caso funciona. Alguém consegue ter uma ideia?

css – Como alterar o tamanho da página de impressão?

Estou imprimindo em uma impressora térmica está saindo duto cert porém está aparecendo um espaço em branco creio que seja o tamanho da página, tem como configirar o tamanho da página mesmo que esteja a impressora configurada por exemplo em a4 ela aparecer na impressão meno? Ex: 80mmx297mm

Estou utilizando

@media print{

body{
    margin:0px;
    padding:0px;
    width:80mm;
    height:297mm;
}

}

Alterar css com javascript quando url – de navegação – for alterada

Olá, estou criando uma nova página com html, css e javascript.

No entanto estive curioso sobre tentar alterar algo no template do site a medida que a navegação fosse ocorrendo.

É possível alterar o css com javascript a partir do momento em que a url do browser(navegador) for sendo alterada?

Para efeitos de testes tentei o seguinte código:

const template_home = window.location.href('localhost/testejs.html');

switch (template_home) {
    case window.location.href('localhost/pagina1.html'):
        window.document.getElementsByClassName('header_template_home').background="blue";
    break;
}

O código não funcionou. Alguém tem alguma sugestão?

php – É possível através de uma migration usar um replace para alterar um registro de dados de uma tabela já populada?

No banco de dados já existem alguns dados inseridos, e eu preciso através de uma migration fazer uma alteração de pegar o valor que está lá e trocar o “.” por “/”. Ex: lá no ID 1, tem o campo valor com 120.80, e eu preciso que esse valor se torne 120/80, é possível? (Não sei se migration seria o ideal para fazer esse tipo de alteração)

Tentei assim, porém consegui apenas alterar o valor no banco para literalmente a palavra “valor”

   public function up()
{
    Schema::table('participante_coleta_pressao_arterial', function (Blueprint $table) {
       //substituir o . por / nos dados que já estão populados
   $alter_valor = str_replace(".", "/", 'valor');

   DB::table ('participante_coleta_pressao_arterial')
   ->where('id', 1)
   ->update ((
       'valor' => $alter_valor
    
    )); //
    
});
}

Gostaria de saber uma forma que pudesse referenciar que aquele terceiro parâmetro ‘valor’ se trata da coluna valor na tabela do banco de dados, e não uma string com o conteudo ‘valor’

javascript – Como criar um botão para alterar um texto no meu html com dados vindos do models.py do Django?

Estou começando a trabalhar com Django e estou iniciando um teste para solidificar o que venho aprendendo. A ideia é uma página única, que exiba uma frase assim que o site for aberto. Abaixo da frase, há um botão que eu gostaria de mudar a frase para alguma outra frase vinda de uma variável declarada em models.py e que contém várias frases que foram registradas através do painel de administração do Django.

Este é meu arquivo models.py:

from django.db import models


class Base(models.Model):
    criado = models.DateField('Criado', auto_now_add=True)
    modificado = models.DateField('Atualização', auto_now=True)
    ativo = models.BooleanField('Ativo', default=True)

    class Meta:
        abstract = True


class Frase(Base):
    frase = models.CharField('Frase', max_length=100)
    dica = models.CharField('Dica', max_length=200, default='-')

    class Meta:
        verbose_name = 'Frase'
        verbose_name_plural = 'Frases'

    def __str__(self):
        return self.frase

Este é meu arquivo views.py:

from django.views.generic import TemplateView
from .models import Frase


class IndexView(TemplateView):
    template_name = 'index.html'

    def get_context_data(self, **kwargs):
        context = super(IndexView, self).get_context_data(**kwargs)
        context('frases') = Frase.objects.order_by('?').all()

        return context

Este é meu index.html:

            <div class="container px-4 px-lg-5 h-100">
                <div class="row gx-4 gx-lg-5 h-100 align-items-center justify-content-center text-center">
                    <div class="col-lg-8 align-self-end">
                        <h1 class="text-white font-weight-bold" id="frase">{{ frases|first }}</h1>
                        <hr class="divider" />
                    </div>
                    <div class="col-lg-8 align-self-baseline">
                        <a class="btn btn-primary btn-xl" onclick="nova_frase()">Nova frase</a>
                    </div>
                </div>
            </div>
     (...) <!--rest of the html code-->
        
         <script type="text/javascript">
            function nova_frase() {
                document.getElementById('frase').innerText = '{{ frases|random }}';
            }
        </script>

Estou tendo dificuldades para encontrar textos para fazer esta tarefa (clique no botão e altere a frase que está sendo exibida por outra frase proveniente da variável definida em models.py, sem que seja preciso atualizar a página).

Estou usando Python 3.9.5 e Django 3.2.5.

Se alguém puder me ajudar, ficaria muito grato.