我遇到登錄用戶和Django ModelForm
問題。我有一個名爲_Animal_
的課程,它有一個ForeignKey
到User
和一些與動物有關的數據,如年齡,種族等。使用request.user與Django ModelForm
用戶可以將動物添加到數據庫,我必須跟蹤每個動物的作者,所以我需要添加用戶創建動物實例時記錄的request.user的。
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
主要目標是隱藏在形式發佈現場,並創下保存按鈕時提交登錄的用戶。
我可以使用initial
來捕捉視圖中的當前用戶,但是我也不想顯示該字段。
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)
是'django.contrib.auth.models'的'User'一個實例? – shailenTJ