2016-11-21 6 views
0

私はグループの詳細ページに人のリストを持っています。私はグループから人を削除し、ページをそのグループにリダイレクトしようとしています。関連オブジェクトのインスタンスを参照する

from .models import Person, Group 

def person_remove(request, slug): 
    instance = get_object_or_404(Person, slug=slug) 
    instance.delete() 

    the_group = ? 
    group_slug = ? 
    return redirect('group_detail', slug=group_slug) 

あなたは私がPersonオブジェクトから「スラグ」パラメータを渡しているが、私はその人が含まれているグループの詳細ページにリダイレクトしようとしている見ることができるように。

編集

[OK]を、それは次のようになります。

グループリスト、URLスラグに基づく:

url(r'^group/(?P<slug>[\w-]+)/$', GroupDetailView.as_view() , name='group_detail') 
  1. グループA
  2. グループB

[OK]を、グループA記入欄に入るグループスラッグを持つents。そのページには次のものがあります。 そのグループに関連する人物のリスト。すべての人が彼自身のスラグがあります

url(r'^person/(?P<slug>[\w-]+)$', PersonDetailView.as_view() , name='person_detail') 
  • 人を1
  • 人2
  • 私は人のモデルでは、インスタンスメソッド関数を作成した3

人:

def person_remove(self): 
    return reverse('person_delete', kwargs={ "slug": self.slug}) 

参照先:

url(r'^person/(?P<slug>[\w-]+)/delete/$', person_delete , name='person_delete'), 

最後に、私が最初に書いた機能を指します。私はあなたが '人を削除'をクリックしたURLにリダイレクトする方法を見つけようとしています

答えて

0

あなたが言ったことはPersonインスタンスをグループから削除せず、Personインスタンスを削除します。

peter = get_object_or_404(Person, slug=slug) 
group = Group.objects.get(slug="Some group slug") 
peter.group_set.remove(group) 

docs

:あなたはこのような何かをする必要があり、あなたのモデルに基づいて
関連する問題