参考相关的对象实例

时间:2016-11-21 22:34:41

标签: django

我在群组详细信息页面上有人员列表。我试图从群组中删除人并将页面重定向回该群组。

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)

正如你所看到的那样,我已经过了“slug”'来自Person对象的参数,但我试图重定向到包含该人的该组详细信息页面。

修改

好吧看起来像这样:

基于slug的组列表,网址:

url(r'^group/(?P<slug>[\w-]+)/$', GroupDetailView.as_view() , name='group_detail')
  1. A组
  2. B组
  3. 好的,输入A组代表组 - 一个slug。在那个页面上我们有: 与该组有关的人员名单。每个人都有他自己的slu ::

    url(r'^person/(?P<slug>[\w-]+)$', PersonDetailView.as_view() , name='person_detail')
    
    • person 1
    • person 2
    • person 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'),
    

    最后它指的是我在开头写的功能。我试图找到一个解决方案,如何重定向回我点击的网址&#39;删除人物&#39;

1 个答案:

答案 0 :(得分: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