Я хочу представлять клубы, в которых есть несколько членов (каждый участник также может вступать в несколько клубов).
Я создал следующую модель
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
Моя проблема сейчас заключается в том, что я связываю клубы с сообщениями, и я не уверен, как затем отсоединить их, не удаляя все ассоциации.
Это может быть не совсем понятно. У меня есть представление, которое содержит следующий фрагмент:
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 с этим постом, а затем сформировать новые отношения. Все это основано на редактировании пользователем своего поста.
Я не уверен, как добраться до этой промежуточной таблицы, не удаляя все Клубы или все Сообщения или все Сообщения, связанные с Клубом (в отличие от просто выбора Сообщений).
Спасибо!