Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 25, 2013 16:01:46

infoforfoi
Зарегистрирован: 2013-01-20
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

получить request.user.id в 3-ю модель

Делаю не заполненую форму с одним заполненым полем - текущий пользователь

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 ?
Спасибо

Офлайн

#2 Фев. 2, 2013 18:07:01

nnmware
Зарегистрирован: 2012-07-21
Сообщения: 133
Репутация: +  13  -
Профиль   Отправить e-mail  

получить request.user.id в 3-ю модель

А зачем так забубенно, и что мешает в Estates иметь User, a не UserProfile?
Зная пользователя вы же всегда можете и профиль нужный дернуть.
ЗЫ: Сейчас в джанге уже не обязательно профили иметь, можно модель пользователя наследовать и расширять.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version