我需要有一个用户没有任何组的视图。我曾试着与.except
查询,但它已经失败,因为多对多领域...ManyToMany字段的查询
我的模型:
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'
是的,我也不喜欢它,但我有一个问题,这是一个解决方案(丑陋,我同意)。 http://stackoverflow.com/questions/11509077/load-in-a-multiplechoicefield-values-from-a-manytomany-field – nlassaux 2012-07-26 12:13:13
我尝试你的解决方案! :D – nlassaux 2012-07-26 12:13:37
真的非常感谢!对于信息**第二个**只是**完美**! – nlassaux 2012-07-26 12:19:00