Diciamo che ho un modulo per aggiungere/prodotti di editing (con il campo di 'user' essere una chiave esterna al mio utente) innescato da due funzioni distinte di visualizzazione - aggiungere/modificare:Django passo dopo passo form.save
def product_add(request):
userprofile = UserProfile.objects.get(user=request.user)
if request.method == 'POST':
form = ProductAddForm(request.POST, request.FILES,)
if form.is_valid():
form.save(user=request.user)
else:
form = ProductAddForm()
return render_to_response('products/product_add.html', {
'form':form, 'user':request.user,
}, context_instance=RequestContext(request))
def product_edit(request, id):
product = get_object_or_404(Product, id=id, user=request.user)
if product.user.id!=request.user.id:
raise Http404
if request.method == 'POST':
form = ProductAddForm(request.POST, request.FILES, instance=product)
if form.is_valid():
form.save(user=request.user)
else:
form = ProductAddForm(instance=product)
return render_to_response('products/product_edit.html', {
'form':form, 'user':request.user,
}, context_instance=RequestContext(request))
metodo Save del modulo si presenta come segue:?
def save(self, user, *args, **kwargs):
self.instance.user = user
post = super(ProductAddForm, self).save(*args, **kwargs)
post.save()
qualcuno può dirmi cosa sta succedendo in questo passaggio metodo save per passo Perché chiamiamo eccellente in questa forma, e qual è la differenza, in tutto elaborazione quando abbiamo modificare e salvare un nuovo prodotto se la chiamata di funzione è la stessa?
Hai guardato docs.python.org per vedere cosa fa la funzione 'super'? http://docs.python.org/library/functions.html#super Che cosa hai imparato lì? –
Cosa intendi con "modifica"? Intendi "convalidare"? Questa è una caratteristica separata di un modulo. O intendi qualcos'altro? –
Per "2 visualizzazioni" intendi "due funzioni di visualizzazione"? In tal caso, AGGIORNA la tua domanda con tutte queste informazioni. Si prega di smettere di aggiungere commenti. Per favore AGGIORNA la domanda per contenere TUTTI i fatti. Quindi elimina i commenti. –