Re: [Python] [Django] Interfaccia admin per relazione uno a molti

2006-07-27 Per discussione Stefano

Carlo C8E Miron ha scritto:

On 7/18/06, Stefano <[EMAIL PROTECTED]> wrote:

Una richiesta d'aiuto per gli utilizzatori di Django (quanti siete qui
in lista?)


Pochi, pare. Oppure, molto silenziosi. ;)
Scherzi a parte, rispondo con un ritardo mostruoso. Avrai gia`
risolto, suppongo...



Ritorno sui miei passi... il problema mi si ripresenta


Sto creando l'interfaccia di amministrazione per due tabelle con
relazione uno a molti, la prima è così definita in models.py

[snip]

la seconda

[snap]

Con il parametro "edit_inline" nell'interfaccia di amministrazione viene
visualizzato il campo "Riga" ma quando compilo il campo e salvo, la riga
caricata non viene visualizzata e mi presenta i dati di Testata con la
riga di dettaglio vuota senza nessun messaggio di errore.
Qualche suggerimento?


Non riesco a riprodurre il tuo problema. Direi che funziona
perfettamente secondo attese.




In questo secondo esempio no...

Nello specifico aggiungendo un campo non obbligatorio 'valore_riga' a 
Dettaglio, se questo non viene compilato nella interfaccia admin, il 
record non viene salvato nel DB. Riscrivo l'esempio completo.



class Testata(models.Model):
data = models.DateField('Data')
descrizione = models.CharField('Descrizione', maxlength=50)

def __str__(self):
return self.descrizione

class Admin:
pass

class Dettaglio(models.Model):
id_testata = models.ForeignKey(Testata, edit_inline=models.TABULAR,
num_in_admin=1,
min_num_in_admin=1,
num_extra_on_change=1)
descrizione_riga = models.CharField('Riga', maxlength=50, core=True)
valore_riga = models.IntegerField('Valore', core=True, blank=True, 
null=True)


def __str__(self):
return self.descrizione_riga

Lo schema db creato per la tabella dettaglio è questo

CREATE TABLE "unomolti_dettaglio" (
   "id" integer NOT NULL PRIMARY KEY,
   "id_testata_id" integer NOT NULL,
   "descrizione_riga" varchar(50) NOT NULL,
   "valore_riga" integer NULL
)


Nel tutorial di Django 
http://www.djangoproject.com/documentation/tutorial2/#adding-related-objects


C'è scritto (tradotto) che "la presenza di almeno uno dei campi aggiunge 
un nuovo dettaglio, la cancellazione di entrambi significa la 
cancellazione del record."


Così non sembra essere, almeno per la parte dell'inserimento. Qualche 
consiglio?


Grazie di nuovo.

Saluti
Stefano
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] mssql

2006-07-27 Per discussione sergio brio
Buon giorno a tutti,
 
sono nuovo della ml e nuovissimo per quanto riguarda python.
Ho l'esigenza di scrivere un semplice script che mi permetta di
interfacciarmi con un server mssql.
 
Al momento sto utilizzando il modulo "pymssql" (http://pymssql.sourceforge.net/),
e tutto sembra funzionare correttamente.
 
Esempio:
 
import _mssql

mssql=_mssql.connect('127.0.0.1','sa','')
if (mssql):    print "ok"else:    print "ko"
mssql.close()
Se però il server non è raggiungibile ottengo in output un messaggio del genere:
_mssql.error: DB-Lib error message 20009, severity 9:Server is unavailable or does not exist.
Come potrei gestire questo errore in maniera "elegante"?
Qualche idea? Spero che non sia troppo banale questa domanda. 
Grazie mille
 
 
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] mssql

2006-07-27 Per discussione Stefano

sergio brio ha scritto:

Buon giorno a tutti,
 


Ciao

Se però il server non è raggiungibile ottengo in output un messaggio del 
genere:


_mssql.error: DB-Lib error message 20009, severity 9:
Server is unavailable or does not exist.

Come potrei gestire questo errore in maniera "elegante"?



Non conosco il modulo in questione ma ti potrei consigliare

import _mssql

try:
mssql=_mssql.connect('127.0.0.1 ','sa','')
except:
mssql=None

if (mssql):
print "ok"
mssql.close()
else:
print "ko"


Non ho testato, spero che funzioni ;-)


Saluti
Stefano


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] mssql

2006-07-27 Per discussione sergio brio
Perfetto.
Ora se lo script e' in funzione e cerco di terminarlo con un "Ctrl+c" ottengo
una serie di warning e KeyboardInterrupt... Come posso gestire questa cosa
in maniera pulita?
 
Grazie mille ancora 
Il 27/07/06, Stefano <[EMAIL PROTECTED]> ha scritto:
sergio brio ha scritto:> Buon giorno a tutti,>Ciao> Se però il server non è raggiungibile ottengo in output un messaggio del
> genere:>> _mssql.error: DB-Lib error message 20009, severity 9:> Server is unavailable or does not exist.>> Come potrei gestire questo errore in maniera "elegante"?
>Non conosco il modulo in questione ma ti potrei consigliareimport _mssqltry:   mssql=_mssql.connect('127.0.0.1 ','sa','')except:   mssql=Noneif (mssql):   print "ok"   mssql.close()else:   print "ko"Non ho testato, spero che funzioni ;-)
SalutiStefano___Python mailing listPython@lists.python.it
http://lists.python.it/mailman/listinfo/python
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Re: mssql

2006-07-27 Per discussione Nicola Larosa
>> Se però il server non è raggiungibile ottengo in output un messaggio
>> del genere:
>>
>> _mssql.error: DB-Lib error message 20009, severity 9:
>> Server is unavailable or does not exist.
>>
>> Come potrei gestire questo errore in maniera "elegante"?

> Non conosco il modulo in questione ma ti potrei consigliare
> 
> import _mssql
> 
> try:
> mssql=_mssql.connect('127.0.0.1 ','sa','')
> except:
> mssql=None

Per favore, no.

Non silenziate gli errori con una except vuota: non saprete più cos'è successo.

Come minimo fate:

try:
mssql = _mssql.connect('127.0.0.1 ','sa','')
except Exception, err:
print err

Meglio ancora specificare l'eccezione:

try:
mssql = _mssql.connect('127.0.0.1 ','sa','')
except _mssql.error, err:
print err

così altre eccezioni non gestite daranno un traceback completo.


Infine, non uso SQL Server ma quel "_mssql" mi puzza di variabile interna.
Non c'è qualcosa di più ufficiale da usare?


-- 
Nicola Larosa - http://www.tekNico.net/

SOAP-based services are called "Web Services" because their proponents
wish to partake of the Web's success -- yet they don't build on its
core technologies, URIs and HTTP. Somehow many have equated SOAP and
Web Services but HTTP has been in Service on the Web for more than a
decade now and has not yet hit its prime. -- Paul Prescod, April 2002

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Re: mssql

2006-07-27 Per discussione sergio brio
Ok, ottima idea.
Per quanto rigaurda il modulo, è il primo e l'unico che ho trovato.
Ma essendo nuovissimo di python... potrei aver cercato nei posti sbagliati.
 
Un'altra domanda molto semplice per intasare la ml :)
 
Vorrei fare un semplice script che mi controlla che la porta di mssql sia
effettivamente aperta su 5 host prima di collegarmi. Un semplice port scanner.
Scusate la formattazione che con il webmail di google potrebbe scazzare...
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)    s.settimeout(5);

    try:    code = s.connect((ip,port))    except socket.timeout:    print "timeout!"
    if (code == None):    s.shutdown(socket.SHUT_RDWR)
    s.close()    print ip,"Port",port,"open"
Per il momento non funziona. Al primo ip con la porta chiusa, lo script esce con
Traceback (most recent call last):  File "test.py", line 31, in ?    code = s.connect((ip,port))  File "", line 1, in connectsocket.timeout: timed outGrazie ancora

Il 27/07/06, Nicola Larosa <[EMAIL PROTECTED]> ha scritto:
>> Se però il server non è raggiungibile ottengo in output un messaggio>> del genere:>>
>> _mssql.error: DB-Lib error message 20009, severity 9:>> Server is unavailable or does not exist. Come potrei gestire questo errore in maniera "elegante"?> Non conosco il modulo in questione ma ti potrei consigliare
>> import _mssql>> try:> mssql=_mssql.connect('127.0.0.1 ','sa','')> except:> mssql=None
Per favore, no.Non silenziate gli errori con una except vuota: non saprete più cos'è successo.Come minimo fate:try:   mssql = _mssql.connect('127.0.0.1 <
http://127.0.0.1>','sa','')except Exception, err:   print errMeglio ancora specificare l'eccezione:try:   mssql = _mssql.connect('127.0.0.1
 ','sa','')except _mssql.error, err:   print errcosì altre eccezioni non gestite daranno un traceback completo.Infine, non uso SQL Server ma quel "_mssql" mi puzza di variabile interna.
Non c'è qualcosa di più ufficiale da usare?
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Re: mssql

2006-07-27 Per discussione Stefano

Nicola Larosa ha scritto:


Per favore, no.

Non silenziate gli errori con una except vuota: non saprete più cos'è successo.



Hai ragione... mi scuso per la leggerezza ;-)


Come minimo fate:

try:
mssql = _mssql.connect('127.0.0.1 ','sa','')
except Exception, err:
print err

Meglio ancora specificare l'eccezione:

try:
mssql = _mssql.connect('127.0.0.1 ','sa','')
except _mssql.error, err:
print err

così altre eccezioni non gestite daranno un traceback completo.



Una domanda, come faccio a sapere a priori quali potenziali eccezioni mi 
potrebbe restituire una certa funzione? E' giusto programmare senza 
'try' alla scoperta di eventuali eccezioni da gestire con questo costrutto?


Saluti
Stefano
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python