0
Good afternoon guys, I made all my form using (Forms.Form) only that I am not able to create a function to edit the form data. Below is my code: (I am using the same registration form template)
py.models
class Cliente(models.Model):
codigoCliente = models.AutoField(primary_key=True, blank=False)
nome = models.CharField(max_length=50, null=False, blank=False)
sobrenome = models.CharField(max_length=50, null=False, blank=False)
rg = models.CharField(max_length=9, null=False, blank=False)
cpf = models.CharField(max_length=11, null=False, blank=False)
dataNascimentoCliente = models.DateField(null=True, blank=True, verbose_name='Data de Nascimento')
numeroTelefoneFixo = models.CharField(max_length=11, null=True, blank=True, verbose_name='Telefone Fixo')
numeroTelefoneCelular = models.CharField(max_length=11, null=True, blank=True, verbose_name='Telefone Celular')
email = models.EmailField(max_length=100, unique=True, null=False, blank=False)
cep = models.CharField(max_length=8, null=False, blank=False)
endereco = models.CharField(max_length=100, null=False, blank=False)
cidade = models.CharField(max_length=100, null=False, blank=False)
bairro = models.CharField(max_length=100, null=False, blank=False)
def __str__(self):
return '{}, {}'.format(self.codigoCliente, self.nome)
def __repr__(self):
return '{}, {}'.format(self.codigoCliente, self.nome)
Forms.py
class CadastroCliente(forms.Form):
codigoCliente = forms.IntegerField(widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Codigo Cliente'}))
nome = forms.CharField(max_length=50, widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Nome do Cliente'}))
sobrenome = forms.CharField(max_length=50, widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Sobrenome do Cliente'}))
rg = forms.CharField(max_length=9, widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'RG'}))
cpf = forms.CharField(max_length=11, widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'CPF'}))
dataNascimentoCliente = forms.DateField(input_formats=['%d/%m/%Y'], widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Data Nascimento do Cliente'}))
numeroTelefoneFixo = forms.CharField(max_length=11, widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Numero de Telefone Fixo'}))
numeroTelefoneCelular = forms.CharField(max_length=11, widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Numero de Telefone Celular'}))
email = forms.EmailField(max_length=100, widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Email'}))
cep = forms.CharField(max_length=8, widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'CEP'}))
endereco = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Endereço'}))
cidade = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Cidade'}))
bairro = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Bairro'}))
py.
urlpatterns =[
path('', RedirectView.as_view(url='home/')),
path('login/', myLogin, name='mylogin'),
path('login/submit', submit_login, name='submit_login'),
path('logout/', logout_user, name='logout'),
path('home/', home, name='home'),
path('cadastroCliente/', cadastroCliente, name='cadastroCliente'),
path('atualizarCliente/<id>/', atualizarCliente, name='atualizarCliente'),
#path('cadastroCliente/submit', submit_cadastroCliente, name='submit_cadastroCliente'),
path('cadastroCliente/cadastroAnimal/', cadastroAnimal, name='cadastroAnimal'),
path('cadastroAnimal/', cadastroAnimalSemSessao, name='cadastroAnimalSemSessao'),
path('consultaRegistro/', consultaRegistro, name='consultaRegistro'),
path('consultaDetails/<id>/', consultaDetails, name='consultaDetails'),
path('deleteCliente/<id>/', deleteCliente, name='deleteCliente'),
path('deleteAnimal/<id>/', deleteAnimal, name='deleteAnimal'),
path('consultaDetails/s/cliente/<id>/', consultaClinteSemAnimal, name='consultaClinteSemAnimal')
]
py views.
def atualizarCliente(request, id, template_name='cadastroCliente.html'):
cliente = get_object_or_404(Cliente, pk=id)
form = CadastroCliente(request.POST or None, initial={
'codigoCliente' : cliente.codigoCliente,
'nome' : cliente.nome,
'sobrenome' : cliente.sobrenome,
'rg' : cliente.rg,
'cpf' : cliente.cpf,
'dataNascimentoCliente' : cliente.dataNascimentoCliente,
'numeroTelefoneFixo' : cliente.numeroTelefoneFixo,
'numeroTelefoneCelular' : cliente.numeroTelefoneCelular,
'email' : cliente.email,
'cep' : cliente.cep,
'endereco' : cliente.endereco,
'cidade' : cliente.cidade,
'bairro' : cliente.bairro
})
print(cliente.codigoCliente)
if request.method == 'POST':
cliente.nome = form.cleaned_data['nome'],
cliente.sobrenome = form.cleaned_data['sobrenome'],
cliente.rg = form.cleaned_data['rg'],
cliente.cpf = form.cleaned_data['cpf'],
cliente.dataNascimento = form.cleaned_data['dataNascimentoCliente'],
cliente.numeroTelefoneFixo = form.cleaned_data['numeroTelefoneFixo'],
cliente.numeroTelefoneCelular = form.cleaned_data['numeroTelefoneCelular'],
cliente.email = form.cleaned_data['email'],
cliente.cep = form.cleaned_data['cep'],
cliente.endereco = form.cleaned_data['endereco'],
cliente.cidade = form.cleaned_data['cidade'],
cliente.bairro = form.cleaned_data['bairro'],
if form.is_valid():
cliente.save()
return redirect('/consultaDetails/{}/'.format(cliente.codigoCliente))
else:
return render(request, template_name, {'form': form, 'cliente': cliente})
template
cadastroCliente.html
extends 'base.html' %}
{% block title %} Oliver Pet {% endblock %}
{% block content-wrapper %}
<h1>BEM VINDO A PAGINA CADASTRO CLIENTE</h1>
<!-- Main content -->
<section class="content">
<div class="box box-primary">
<div class="box-header">
<h3 class="box-title">Por favor insira os dados abaixo.</h3>
</div><!-- /.box-header -->
<!-- form start -->
<form method="POST" role="form"> {% csrf_token %}
<div class="box-body" >
<div class="form-group col-md-4">
<label>Codigo do Cliente</label>
{{ form.codigoCliente }}
</div>
<div class="form-group col-md-4">
<label>Nome do Cliente</label>
{{ form.nome }}
</div>
<div class="form-group col-md-4">
<label>Sobrenome do Cliente</label>
{{ form.sobrenome }}
</div>
<div class="form-group col-md-4">
<label>RG</label>
{{ form.rg }}
</div>
<div class="form-group col-md-4">
<label>CPF</label>
{{ form.cpf }}
</div>
<div class="form-group col-md-4">
<label>Data Nascimento Cliente</label>
{{ form.dataNascimentoCliente }}
</div>
<div class="form-group col-md-4">
<label>Numero Telefone Fixo</label>
{{ form.numeroTelefoneFixo }}
</div>
<div class="form-group col-md-4">
<label>Numero Telefone Celular</label>
{{ form.numeroTelefoneCelular }}
</div>
<div class="form-group col-md-4">
<label>Email</label>
{{ form.email }}
</div>
<div class="form-group col-md-4">
<label>CEP</label>
{{ form.cep }}
</div>
<div class="form-group col-md-4">
<label>Endereço</label>
{{ form.endereco }}
</div>
<div class="form-group col-md-4">
<label>Cidade</label>
{{ form.cidade }}
</div>
<div class="form-group col-md-4">
<label>Bairro</label>
{{ form.bairro }}
</div>
</div><!-- /.box-body -->
<div class="box-footer">
<button type="submit" class="btn btn-primary">{% if cliente %} Alterar {% else %} Cadastrar {% endif %}</button>
</div>
{% if msg %}
<p class="help-block">{{ msg }}</p>
{% endif %}
</form>
</div><!-- /.box -->
</section><!-- /.content -->
{% endblock %}