시행 ManyToManyField 고유 항목 :장고 -이 같은 간단한 일을 할 노력하고있어
members = models.ManyToManyField(User,blank=True,null=True,unique=True)
만의 고유은 허용되지 않습니다. 생성 된 테이블을 보았을 때 외래 키가 고유하므로 고유 키가 상상됩니다.
그룹을 나타내는이 모델에 회원을 연결할 수 있기를 원합니다. 그룹에는 회원이 없어도 동일한 회원이 그룹에 두 번 가입 할 수 있기를 원하지 않습니다.
제 생각에는 시도하고 시도하면 예외가 발생하지만 예외가 발생하지 않는 것 같습니다.
def join(request,id):
user = request.user
mygroup = Group.objects.get(id=id)
mygroup.members.add(user)
mygroup.num_members+=1
mygroup.save()
예외가 발생하지 않으므로 num_members가 증가합니다. 중복 된 사용자는 관리 유틸리티에 나타나지 않습니다. add()가 자동으로 실패합니까? 추가하기 전에 이미 사용자가 포함되어 있는지 단순히 확인해야합니까?
감사합니다.
? 이 방법으로 사용자는 여러 그룹에있을 수 있지만 각 그룹에서 한 번만 - 원하는 것입니다. – Liorsion
그룹에서 사용자로의 'ForeignKey'는 그룹에 사용자가 하나만 있음을 의미합니다. 'ForeignKey'는 many-to-one입니다. –