1

タイトルが明確かどうかわかりません。問題はそれほど簡単ではなく、私は英語の話者ではないので、簡単に説明するのは非常に難しいです。タイトルを改善するためのすべての提案は大歓迎です。オブジェクトの主キーをそのビューからManyToMany関係オブジェクトビューに渡す

だから、実際の問題に行きましょう...私のアプリケーションでは、人々はさまざまなグループに参加することができます。現在、私はこの目的のために招待システムを作成しているので、ユーザーは別のユーザーに招待状を送ることができます。グループビューでは、このグループに接続されていないユーザーのリストがあり、グループメンバーはそれらのユーザーを招待できます。だから、私がグループビューに行くとき、私はそれを主キーとしています。招待についてのデータベースセルを作成するには、グループのPKとユーザーPKも必要です(別のビューを使用していますが、それが最善の解決策ではないと思います)。

私の質問はどのように私はデータベース内のグループ - ユーザーの関係のセルを作成する新しいビューにこれら2つのPKを渡すことができますか?

models.py

class Group(models.Model): 
    name = models.CharField(max_length=500) 
    members = models.ManyToManyField(User, blank=True, related_name="member") 
    invitations = models.ManyToManyField(User, blank=True, related_name="invitations") 

views.py

def not_yet_members_list_view(request, pk): 
    group = Group.objects.get(pk=pk) 

    not_yet_members = User.objects.all() #doesn't matter 

    args = {'group': group, 'not_yet_members': not_yet_members} 
    return render(request, 'groups/show_members.html', args) 

# Here is my problem (this code is a simplified version of what I want to achieve) 
def invite_user_view(request, group_pk, user_pk): 
    invite_user(group_pk, user_pk) 

    return render(request, 'groups/show_members.html') 

urls.py

url(r'^not_yet_members_list/(?P<pk>\d+)/$', views.not_yet_members_list, name='not_yet_members_list'), 

template.html:あなたがデータにアクセスする必要がどこにビューでグループおよびユーザー

request.session['group_pk'] = group_pk 
request.session['user_pk']= user_pk 

を渡す必要がどこから見て

{% for user in not_yet_members %} 
    <!-- ??? -->{{ user }}<a href="{% url 'groups:invite_user_view' pk=group.id %}">Invite</a> 
{% endfor %} 
+0

よくセッションを保存して次のビューにアクセスすることができます。ユーザーが招待されたら、セッションをクリアしてください – Exprator

+0

どうすればいいですか? –

+0

助けてくれてありがとう! –

答えて

0

group_pk = request.session['group_pk'] 
user_pk = request.session['user_pk'] 

次に

invite_user(group_pk, user_pk) 

招待状の送信に成功した後

del request.session['group_pk'] 
del request.session['user_pk'] 
request.session.modified = True 
関連する問題