【发布时间】:2011-06-14 14:41:27
【问题描述】:
我想代表有多个会员的俱乐部(每个会员也可以加入多个俱乐部)。
我创建了以下模型
class Club(models.Model):
name=models.CharField(max_length=100)
admin=models.ManyToManyField(User, related_name='club_admins')
member=models.ManyToManyField(User, related_name='memberships')
posts=models.ManyToManyField(Post, blank=True, null=True)
description=models.TextField(max_length=500,blank=True)
public=models.BooleanField(default=True)
password=models.CharField(max_length=30, blank=True)
def __unicode__(self):
return self.name
我现在的问题是我正在将俱乐部与帖子相关联,但我不确定如何在不删除所有关联的情况下取消它们的关联。
这可能并不完全清楚。我有一个包含以下 sn-p 的视图:
if request.POST.get('clubs'):
clubs=request.POST['clubs'].split(',')
p=int(post.id)
old_clubs=Club.objects.filter(posts__pk=p)
for o in old_clubs:
#figure out how to disassociate the club with this post
for a in clubs:
group=Club.objects.get(name=a)
group.posts.add(post)
我试图做的是清除所有与这篇帖子有 M2M 关系的旧俱乐部,然后建立新的关系。这一切都基于用户编辑他们的帖子。
我不确定如何在不删除所有俱乐部或所有帖子或与俱乐部关联的所有帖子(而不是仅选择帖子)的情况下进入该中间表。
谢谢!
【问题讨论】:
标签: django django-models many-to-many