Skip to content

Instantly share code, notes, and snippets.

@fabianogoes
Last active December 11, 2015 23:08
Show Gist options
  • Save fabianogoes/4673976 to your computer and use it in GitHub Desktop.
Save fabianogoes/4673976 to your computer and use it in GitHub Desktop.
ModelForm - duvida na parte de editar dados
#coding: utf-8
# admin.py
from django import forms
from models import Pais
class PaisForm(forms.ModelForm):
class Meta:
model = Pais
fields = ['nome', 'sigla']
# models.py
class Pais(models.Model):
nome = models.CharField('Nome', max_length=30)
sigla = models.CharField('Sigla', max_length=3)
class Meta:
db_table = 'endereco_pais'
app_label = 'endereco'
verbose_name_plural = "Paises"
verbose_name = "Paise"
def __unicode__(self):
return u"%s - %s" % (self.sigla, self.nome)
<form class="form-horizontal" action="" method="POST">
<fieldset>
<div id="legend">
<legend class="">Cadastro de Pais</legend>
</div>
{% csrf_token %}
{{ form.as_p }}
<div class="control-group">
<button type="submit" class="btn btn-success">Salvar</button>
</div>
</fieldset>
</form>
#views.py
def pais_view(request):
return render_to_response('pais_table.html', {'paises': Pais.objects.all()})
def pais_add(request):
form = PaisForm(request.POST or None)
if form.is_valid():
dados = form.cleaned_data
item = Pais()
item.nome = dados['nome']
item.sigla = dados['sigla']
item.save()
return render_to_response('pais_table.html', {'paises': Pais.objects.all()})
return render_to_response('pais_form.html', {'form': form}, context_instance=RequestContext(request))
def pais_edit(request, pais_id):
form = PaisForm()
try:
pais = Pais.objects.get(pk=pais_id)
form = PaisForm(instance=pais)
except Pais.DoesNotExist:
raise Http404()
return render_to_response('pais_form.html', {'form': form}, context_instance=RequestContext(request))
def pais_delete(request, pais_id):
try:
pais = Pais.objects.get(pk=pais_id)
pais.delete()
except Pais.DoesNotExist:
raise Http404()
return render_to_response('pais_table.html', {'paises': Pais.objects.all()})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment