Найти - Пользователи
Полная версия: получить request.user.id в 3-ю модель
Начало » Django » получить request.user.id в 3-ю модель
1
infoforfoi
Делаю не заполненую форму с одним заполненым полем - текущий пользователь

models.py
class Estates(models.Model):
userprofile = models.ForeignKey(UserProfile, verbose_name=u'Пользователь', default=1)

class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True, verbose_name=u'Пользователь')

И стандартная User

forms.py - стандартно

views.py
    model_formset = modelformset_factory(Estates, form=EstatesForm, extra=1, can_delete=True)
if request.POST:
formset = model_formset(request.POST, request.FILES, queryset=Estates.objects.filter(userprofile__user__username__exact=username))
if formset.is_valid():
formset.save()
estates_objects = formset.save(commit=False)
formset.save()
for obj in estates_objects:
obj.userprofile_id = request.user.id # :( проблема тут
obj.save()
return HttpResponseRedirect('')
else:
formset = model_formset(queryset=Estates.objects.filter(userprofile__user__username__exact=username))
return render(request, template_name, dict(formset=formset))

Дело в том, что ID Estates.userprofile в даном случае берется из User.id,
все было бы хорошо, но User.id соответствует UserProfile.user_id
а Estates.userprofile, соответствует UserProfile.id

Как правильно построить запрос, здесь: obj.userprofile_id = request.user.id ?
Спасибо
nnmware
А зачем так забубенно, и что мешает в Estates иметь User, a не UserProfile?
Зная пользователя вы же всегда можете и профиль нужный дернуть.
ЗЫ: Сейчас в джанге уже не обязательно профили иметь, можно модель пользователя наследовать и расширять.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB