У меня есть такая форма:
from django import forms
from django.contrib.auth.models import User
from django_countries.countries import COUNTRIES
from statuses.models import Status
class StatusForm(forms.Form):
country = forms.ChoiceField(choices=COUNTRIES)
mood = forms.IntegerField()
sleep_quality = forms.IntegerField()
Эта форма отображается только для пользователей, которые вошли в систему, как я могу установить request.user
, чтобы, когда пользователь отправляет эту форму, я могсвязать форму записи с ними?Моя модель выглядит следующим образом с пользователем FK:
from django.db import models
from django.contrib.auth.models import User
from django_countries import CountryField
class Status(models.Model):
user = models.ForeignKey(User)
country = CountryField()
mood = models.SmallIntegerField(default=4)
sleep_quality = models.SmallIntegerField(default=4)
Вот мой взгляд и для этой формы:
@login_required
def index(request, template_name="status/index.html"):
if request.method == 'POST':
postdata = request.POST
form = StatusForm(postdata)
if form.is_valid():
messages.success(request, 'Something happened, good!')
return redirect(urlresolvers.reverse('profile'))
else:
form = StatusForm()
context = RequestContext(request, { 'form': form })
return render_to_response(template_name, context)
Я подумал, может быть, мне следует создать скрытое поле и сохранитьтам есть request.user, но это не кажется безопасным, поскольку его легко редактировать с помощью firebug и тому подобного.Любые предложения относительно того, как я могу сохранить request.user для этой формы?
Спасибо!