Note that there are some explanatory texts on larger screens.

plurals
  1. POModelForms and Multiple Datasbase - error in form.is_valid()
    text
    copied!<p> Hi,</p> <p>I just have multiple database in my django website.. each user use a different database, setted in UserProfile.</p> <p>My problem is:</p> <p>How can I set the modelForm to use the specific database?</p> <p>I got these error: table XX doesn't exists. because django is try to use my auth db.. I try tu use router, but all samples I found in internet, doesn't use database name from UserProfile.</p> <p>Here is my Form:</p> <pre class="lang-python prettyprint-override"><code>class ClienteForm(ModelForm): class Meta: model = Pessoa def __init__(self, *args, **kwargs): vUserProfile = kwargs.pop('vUserProfile', None) super(ClienteForm, self).__init__(*args, **kwargs) </code></pre> <p>Here my traceback:</p> <pre class="lang-python prettyprint-override"><code>Environment: Request Method: POST Request URL: http://127.0.0.1:8000/cadastro/pessoa/novo/ Django Version: 1.5.1 Python Version: 2.7.2 Installed Applications: ('django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.admin', 'django_evolution', 'debug_toolbar', 'pagination', 'bootstrap_toolkit', 'web_core') 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', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'debug_toolbar.middleware.DebugToolbarMiddleware', 'pagination.middleware.PaginationMiddleware') Traceback: File "/Library/Python/2.7/site-packages/django/core/handlers/base.py" in get_response 115. response = callback(request, *callback_args, **callback_kwargs) File "/Users/fellipeh/PycharmProjects/webconflex/cadastros/views.py" in EditaPessoa 47. if formPessoa.is_valid(): File "/Library/Python/2.7/site-packages/django/forms/forms.py" in is_valid 126. return self.is_bound and not bool(self.errors) File "/Library/Python/2.7/site-packages/django/forms/forms.py" in _get_errors 117. self.full_clean() File "/Library/Python/2.7/site-packages/django/forms/forms.py" in full_clean 274. self._post_clean() File "/Library/Python/2.7/site-packages/django/forms/models.py" in _post_clean 344. self.validate_unique() File "/Library/Python/2.7/site-packages/django/forms/models.py" in validate_unique 353. self.instance.validate_unique(exclude=exclude) File "/Library/Python/2.7/site-packages/django/db/models/base.py" in validate_unique 731. errors = self._perform_unique_checks(unique_checks) File "/Library/Python/2.7/site-packages/django/db/models/base.py" in _perform_unique_checks 826. if qs.exists(): File "/Library/Python/2.7/site-packages/django/db/models/query.py" in exists 596. return self.query.has_results(using=self.db) File "/Library/Python/2.7/site-packages/django/db/models/sql/query.py" in has_results 442. return bool(compiler.execute_sql(SINGLE)) File "/Library/Python/2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql 840. cursor.execute(sql, params) File "/Library/Python/2.7/site-packages/django/db/backends/util.py" in execute 41. return self.cursor.execute(sql, params) File "/Library/Python/2.7/site-packages/firebird/base.py" in execute 158. six.reraise(utils.DatabaseError, utils.DatabaseError(*self.error_info(e, query, params)), sys.exc_info()[2]) File "/Library/Python/2.7/site-packages/firebird/base.py" in execute 150. return self.cursor.execute(q, params) File "/Library/Python/2.7/site-packages/fdb/fbcore.py" in execute 3322. PreparedStatement(operation, self, True)) File "/Library/Python/2.7/site-packages/fdb/fbcore.py" in __init__ 1934. "Error while preparing SQL statement:") Exception Type: DatabaseError at /cadastro/pessoa/novo/ Exception Value: ('Error while preparing SQL statement:\n- SQLCODE: -204\n- Dynamic SQL Error\n- SQL error code = -204\n- Table unknown\n- PESSOA\n- At line 1, column 41', u'-204 -- SELECT FIRST 1 (1) AS "A" FROM "PESSOA" WHERE "PESSOA"."IDPESSOA" = -1') </code></pre> <p>Here is my Pessoa model:</p> <pre class="lang-python prettyprint-override"><code>class Pessoa(models.Model): idsys_point_cliente = models.CharField(max_length=28, primary_key=True) idpessoa = models.IntegerField(verbose_name=u'Código', primary_key=True, default=-1) data_cadastro = models.DateTimeField(u'Data/Hora Cadastro', default=datetime.now, blank=True, editable=False) data_atualizacao = models.DateTimeField(verbose_name=u'Data/Hora da Última Atualização', default=datetime.now, blank=True) status = models.CharField(verbose_name=u'Status', max_length=1, default='A', choices=Ativo_Inativo_CHOICE) razao_social = models.CharField(u'Razão Social *', max_length=70, null=False) nome_fantasia = models.CharField(u'Nome Fantasia', max_length=70, blank=True, null=True) endereco = models.CharField(u'Endereço *', max_length=150, null=False) numero = models.CharField(u'Número *', max_length=30, null=False) bairro = models.CharField(u'Bairro *', max_length=40, null=False) complemento = models.CharField(u'Complemento', max_length=30, blank=True, null=True) idcidade = models.ForeignKey('web_core.Cidade', verbose_name="Cidade *", db_column='idcidade', null=False, blank=False) email = models.EmailField(u'E-Mail', max_length=100, blank=True, null=True) fisico_juridico = models.CharField('Tipo Cadastro *', max_length=1, default='F', choices=FIS_JUR_CHOICE) fis_cpf = models.CharField(u'CPF', max_length=14, null=True, blank=True) jur_cnpj = models.CharField(u'CNPJ', max_length=18, null=True, blank=True) telefone1 = models.CharField(u'Telefone', max_length=14) idrepresentante = models.IntegerField(u'Representante', null=True, blank=True, editable=False) class Meta: ordering = ['razao_social'] managed = False db_table = 'pessoa' def __unicode__(self): return self.razao_social </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload