Sto riscontrando un problema con gli utenti registrati e un Django ModelForm
. Ho una classe denominata _Animal_
che ha una User
e alcuni dati relativi all'animale come età, razza e così via.Utilizzo di request.user con Django ModelForm
Un utente può aggiungere Animali al db e io devo rintracciare l'autore di ciascun animale, quindi devo aggiungere lo request.user che viene registrato quando l'utente crea un'istanza animale.
models.py
class Animal(models.Model):
name = models.CharField(max_length=300)
age = models.PositiveSmallIntegerField()
race = models.ForeignKey(Race)
...
publisher = models.ForeignKey(User)
def __unicode__(self):
return self.name
class AnimalForm(ModelForm):
class Meta:
model = Animal
L'obiettivo principale è nascondere il campo editore in forma, e inviare l'utente connesso quando colpisce pulsante Salva.
Posso vedere l'utente corrente nella vista utilizzando initial
, ma quello che voglio anche non è visualizzare il campo.
views.py
@login_required
def new_animal(request):
if request.method == "POST":
form = AnimalForm(request.POST)
if form.is_valid():
form.save()
return redirect('/')
else:
variables = RequestContext(request, {'form': form})
return render_to_response('web/animal_form.html', variables)
else:
form = AnimalForm(initial={'publisher': request.user})
variables = RequestContext(request, {'form': form})
return render_to_response('web/animal_form.html', variables)
è il 'user' un'istanza di' django.contrib.auth.models'? – shailenTJ