Created
October 17, 2012 23:39
-
-
Save mercutio22/3909024 to your computer and use it in GitHub Desktop.
UpdateView woes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#encoding=utf-8 | |
from django import forms | |
from django.contrib.localflavor.br.forms import ( | |
BRCPFField, | |
BRCNPJField, | |
BRZipCodeField, | |
BRPhoneNumberField, #dígitos dos celulares de SP precisam de nova validação | |
BRStateSelect, | |
) | |
from .models import Membro | |
#class MembroForm(forms.ModelForm): | |
# class Meta: | |
# model = Membro | |
class MembroForm(forms.Form): | |
#TODO, descobrir se é possível implementar uma condição para escolher CPF ou CNPJ | |
#documento = BRCPFField() | |
#telefone = BRPhoneNumberField() #TODO: implementar um modelField customizado para acomodar SP. | |
#cep = BRZipCodeField() | |
logradouro = forms.CharField(max_length=64) | |
complemento = forms.CharField(max_length=32) | |
bairro = forms.CharField(max_length=32) | |
cidade = forms.CharField(max_length=32) | |
#uf =forms.CharField(max_length=4, widget=BRStateSelect,) | |
#class Meta: | |
# model = Membro |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#encoding=utf-8 | |
from django.db import models | |
from django.core.urlresolvers import reverse | |
from django.contrib.auth.models import User | |
from django.db.models.signals import post_save | |
TIPOS_DE_PLANO = [ | |
('MESA', u'Mesa compartilhada'), | |
('SALA', u'Sala'), | |
('CONTATO', u'Contato'), | |
] | |
UNIDADES_DE_PLANO = [ | |
('HORA', u'Hora'), | |
('MES', u'Mês'), | |
] | |
# Informações adicionais de um usuario | |
class Membro(models.Model): | |
user = models.OneToOneField(User) | |
nome_completo = models.CharField(u'nome',db_index=True, max_length=64) | |
documento = models.CharField(max_length=16) | |
telefone = models.CharField(db_index=True, max_length=32) | |
cep = models.CharField(max_length=16) | |
logradouro = models.CharField(u'endereço',max_length=64) | |
complemento = models.CharField(max_length=32, blank=True) | |
bairro = models.CharField(max_length=32) | |
cidade = models.CharField(max_length=32) | |
uf = models.CharField(max_length=4) | |
#TODO: adicionar um slugfield | |
@models.permalink | |
def get_absolute_url(self): | |
return ('membro-detalhe', [str(self.id)]) #parâmetro 1 --> url nomeada | |
# Vincula as informações de um Membro ao um Usuario | |
def create_member_profile(sender, instance, created, **kwargs): | |
if created: | |
Membro.objects.create(user=instance) | |
post_save.connect(create_member_profile, sender=User) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Environment: | |
Request Method: GET | |
Request URL: http://localhost:8000/membro/atualiza/1/ | |
Django Version: 1.4.1 | |
Python Version: 2.7.3 | |
Installed Applications: | |
('django.contrib.auth', | |
'django.contrib.contenttypes', | |
'django.contrib.sessions', | |
'django.contrib.sites', | |
'django.contrib.messages', | |
'django.contrib.staticfiles', | |
'django.contrib.admin', | |
'registration', | |
'portal', | |
'contas', | |
'south') | |
Installed Middleware: | |
('django.middleware.common.CommonMiddleware', | |
'django.contrib.sessions.middleware.SessionMiddleware', | |
'django.middleware.csrf.CsrfViewMiddleware', | |
'django.contrib.auth.middleware.AuthenticationMiddleware', | |
'django.contrib.messages.middleware.MessageMiddleware') | |
Traceback: | |
File "/home/nurf/gitcode/openshift/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response | |
111. response = callback(request, *callback_args, **callback_kwargs) | |
File "/home/nurf/gitcode/openshift/venv/local/lib/python2.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view | |
20. return view_func(request, *args, **kwargs) | |
File "/home/nurf/gitcode/openshift/venv/local/lib/python2.7/site-packages/django/views/generic/base.py" in view | |
48. return self.dispatch(request, *args, **kwargs) | |
File "/home/nurf/gitcode/openshift/venv/local/lib/python2.7/site-packages/django/views/generic/base.py" in dispatch | |
69. return handler(request, *args, **kwargs) | |
File "/home/nurf/gitcode/openshift/venv/local/lib/python2.7/site-packages/django/views/generic/edit.py" in get | |
191. return super(BaseUpdateView, self).get(request, *args, **kwargs) | |
File "/home/nurf/gitcode/openshift/venv/local/lib/python2.7/site-packages/django/views/generic/edit.py" in get | |
131. form = self.get_form(form_class) | |
File "/home/nurf/gitcode/openshift/venv/local/lib/python2.7/site-packages/django/views/generic/edit.py" in get_form | |
34. return form_class(**self.get_form_kwargs()) | |
Exception Type: TypeError at /membro/atualiza/1/ | |
Exception Value: __init__() got an unexpected keyword argument 'instance' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# coding: utf-8 | |
from django.conf.urls import patterns, include, url | |
from django.views.generic.simple import direct_to_template | |
from django.contrib import admin | |
from django.dispatch import receiver | |
from django.contrib.auth import views as auth_views | |
from registration.forms import RegistrationFormTermsOfService | |
from registration.forms import RegistrationFormUniqueEmail | |
from registration.views import activate | |
from registration.views import register | |
from django.views.generic import detail | |
from django.views.generic.edit import UpdateView | |
from django.contrib.auth.decorators import login_required | |
from .models import Membro | |
from .views import AtualizaMembro | |
from .forms import MembroForm | |
urlpatterns = patterns('contas.views', | |
url(r'^membro/(?P<pk>\d+)/$', detail.DetailView.as_view( | |
model=Membro, | |
context_object_name='membro', | |
template_name='contas/membro_detalhe.html', | |
), | |
name='membro-detalhado'), | |
url(r'^membro/atualiza/(?P<pk>\d+)/$', | |
#r'^membro/atualiza/$', | |
login_required(AtualizaMembro.as_view()), | |
name='atualiza-membro') | |
) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment