Tôi đang gặp sự cố với người dùng đã đăng nhập và một Django ModelForm
. Tôi có một lớp học có tên là _Animal_
có một số ForeignKey
đến User
và một số dữ liệu liên quan đến động vật như tuổi tác, chủng tộc, v.v.Sử dụng request.user với Django ModelForm
Một người dùng có thể thêm động vật vào db và tôi phải theo dõi tác giả của từng con vật, vì vậy tôi cần thêm request.user được ghi lại khi người dùng tạo một phiên bản động vật.
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
Mục đích chính là che giấu lĩnh vực xuất bản dưới hình thức, trình người dùng đăng nhập khi chạm nút tiết kiệm.
Tôi có thể thu hút người dùng hiện tại trong chế độ xem bằng cách sử dụng initial
, nhưng những gì tôi cũng muốn không hiển thị trường.
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)
là 'cái User' một thể hiện của 'django.contrib.auth.models'? – shailenTJ