グループを持っていないユーザーとの意見が必要です。でクエリを実行しようとしました .except
が、多対多フィールドが原因で失敗しました...
私のモデル:
class UserProfile(models.Model):
user = models.OneToOneField(User, unique=True)
courses_list = models.ManyToManyField('Course', blank=True)
group_list = models.ManyToManyField('Group', blank=True)
class Group(models.Model):
name = models.CharField(max_length=30)
assignment = models.ForeignKey(Assignment)
members = models.ManyToManyField(UserProfile, through=UserProfile.group_list.through, blank=True)
class Assignment (models.Model):
course = models.ForeignKey(Course)
class Course(models.Model):
subscribed = models.ManyToManyField(UserProfile, through= UserProfile.courses_list.through, blank=True)
したがって、assignment.course.subscribed.all
グループを持たない、割り当てにサブスクライブしている(すべて送信する)ユーザーを選択する必要があります(問題は、この割り当てにリンクされているグループのみを処理する必要があることです)
試しgroupless = detailedassignment.course.subscribed.exclude(username = group_list.filter(assignment=detailedassignment).members.username.all())
ましたが、まったく機能しません(コードを見ると正常だと思います。)
編集 :
私はある意味で関係を削除しました、今私のモデルは:
My models :
class UserProfile(models.Model):
user = models.OneToOneField(User, unique=True)
class Group(models.Model):
name = models.CharField(max_length=30)
assignment = models.ForeignKey(Assignment)
members = models.ManyToManyField(UserProfile, blank=True)
class Assignment (models.Model):
course = models.ForeignKey(Course)
class Course(models.Model):
subscribed = models.ManyToManyField(UserProfile, blank=True)
私は使用しようとしました:
groupless = detailedassignment.course.subscribed.exclude(user__username__in = Group.objects.filter(assignment=detailedassignment).members.objects.values_list('user__username'))
しかし、私は持っています'QuerySet' object has no attribute 'members'