Я использую django-friends и django-messages.
Я изменил свою пользовательскую форму создания, чтобы получать следующую информацию, мои друзья, а также отображать их полные имена вместо просто имен пользователей.
Одна проблема, с которой я сталкиваюсь, заключается в том, что я не могу получить доступ к себе как вошедшему в систему пользователю, чтобы выполнить запрос, мне нужно жестко его кодировать.
class MyComposeForm(forms.Form):
"""
A simple default form for private messages.
"""
recipient = forms.ModelChoiceField(queryset=Friendship.objects.all(), label=_(u"Recipient"))
#recipient = forms.ModelChoiceField(queryset=User.objects.all(), label=_(u"Recipient"))
subject = forms.CharField(label=_(u"Subject"))
body = forms.CharField(label=_(u"Body"),
widget=forms.Textarea(attrs={'rows': '2', 'cols':'55'}))
def __init__(self, *args, **kwargs):
recipient_filter = kwargs.pop('recipient_filter', None)
super(MyComposeForm, self).__init__(*args, **kwargs)
### underneath here I have to hardcode with my ID to pull the info.
friends = Friendship.objects.filter(from_user=1)
self.fields['recipient'].choices = [(friend.to_user.pk, friend.to_user.get_full_name()) for friend in friends]
if recipient_filter is not None:
self.fields['recipient']._recipient_filter = recipient_filter
Как мне получить доступ к своему пользовательскому экземпляру?
Я пытался добавить request
к __init__
и использовать request.user
, но, похоже, это не работает.
Есть идеи?