below are my models, I want to display only those groups in post form in which the user is joined in.
Example: if I joined in "mcu" group then only that group should be displayed, how should I do that??

GROUP MODEL
class Group(models.Model):
name = models.CharField(max_length=200, unique=True)
description = models.TextField(blank=True, default='')
members = models.ManyToManyField(User, through='GroupMember')
class GroupMember(models.Model):
group = models.ForeignKey(Group, related_name='memberships',on_delete=models.CASCADE)
user = models.ForeignKey(User, related_name='user_groups',on_delete=models.CASCADE)
class Meta:
unique_together = ('group', 'user')
POST MODEL
User = get_user_model()
class Post(models.Model):
user = models.ForeignKey(User, related_name='posts',on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now=True)
title = models.CharField(max_length=250,default='')
message = RichTextField()
group = models.ForeignKey(Group, related_name='posts', null=True, blank=True,on_delete=models.CASCADE)
class Meta:
ordering = ['-created_at']
unique_together = ['user', 'message']
In views.py
class CreatePost(LoginRequiredMixin, SelectRelatedMixin, generic.CreateView):
model = models.Post
form_class = forms.PostForm
def form_valid(self, form):
self.object = form.save(commit=False)
self.object.user = self.request.user
self.object.save()
return super().form_valid(form)
In forms.py
class PostForm(forms.ModelForm):
class Meta:
model = models.Post
fields = ('title', 'message', 'group')
widgets = {
'message': forms.Textarea(attrs={'class': 'form-control mb-3'}),
'title': forms.TextInput(attrs={'class': 'form-control mb-3'}),
'group': forms.Select(attrs={'class': 'form-control'}),
}