Domanda per principianti Django: impazzire con un modulo per la creazione e l'aggiornamento
Domanda
OK. Mi sono appena legato in un nodo cercando di creare un modulo in Django che posso usare per inserire dati su un nuovo record o aggiornarne uno esistente.
Qualcuno può delineare le cose giuste che dovrei avere nelle mie forme, viste e URL se questo modello? :
class Person(models.Model) :
name = models.CharField()
age = models.IntegerField()
In un'altra pagina desidero un collegamento a un modulo che mi consenta di creare una nuova istanza di una persona o di modificarne una esistente.
Cose che mi confondono:
-
sono necessarie due linee distinte su urls.py, una per collegarsi al modulo vuoto, NON passare un id e una per collegarsi al modulo quando passo l'id?
-
sono necessarie due diverse visualizzazioni, una per ricevere il modulo prima che un'istanza sia stata salvata e una quando esiste l'istanza?
Sono sicuro di averlo visto fatto con un link e una funzione in views.py, ma non riesco più a farlo bene. Ciò che non sembra funzionare sta provando a inviare sia l'URL con l'id
/edit/id
e senza
/edit/
alla stessa funzione di visualizzazione con un argomento predefinito per id
def edit(request,id=0) :
blah
Quindi qual è il modo giusto per farlo?
Saluti. phil
Soluzione
Configura urls.py per acquisire la variabile id se inclusa nell'URL, quindi verifica la presenza di null in views.py
Il tuo urls.py potrebbe assomigliare a questo:
(r'^edit/(?P<person_id>\w+)/
Quindi, nel tuo views.py:
def edit_person(person_id=None):
if(person_id): #show populated form
else: # show empty form
, 'mysite.myapp.views.edit_person'),
Quindi, nel tuo views.py:
<*>