'through'클래스 테이블을 포함하고 m2m 데이터를 저장하는 데 문제가 있습니다. 선택한 모든 멤버 (양식에 선택된)를 쓰루 테이블에 저장하려고합니다. 하지만보기에서 '통해'테이블을 초기화하는 방법을 모르겠습니다.Django m2m form "through"테이블을 저장합니다.
내 코드 :
class Classroom(models.Model):
user = models.ForeignKey(User, related_name = 'classroom_creator')
classname = models.CharField(max_length=140, unique = True)
date = models.DateTimeField(auto_now=True)
open_class = models.BooleanField(default=True)
members = models.ManyToManyField(User,related_name="list of invited members", through = 'Membership')
class Membership(models.Model):
accept = models.BooleanField(User)
date = models.DateTimeField(auto_now = True)
classroom = models.ForeignKey(Classroom, related_name = 'classroom_membership')
member = models.ForeignKey(User, related_name = 'user_membership')
및 뷰에
:def save_classroom(request):
classroom_instance = Classroom()
if request.method == 'POST':
form = ClassroomForm(request.POST, request.FILES, user = request.user)
if form.is_valid():
new_obj = form.save(commit=False)
new_obj.user = request.user
new_obj.save()
membership = Membership(member = HERE SELECTED ITEMS FROM FORM,classroom=new_obj)
membership.save()
은 어떻게 회원 테이블의 회원을 초기화해야 잘 채워이란?
그게 다야! 저는 파이썬을 처음 접했을 때 정말 고민 거리가되었습니다. Thnx 많이! – dana
질문 : 강의실 작성자를 구성원 (required.user)으로 추가하고 해당 목록에 추가하려면 어떻게해야합니까? 감사합니다. – dana
내가 당신의 요점을 가지고 있는지 확실하지 않습니다. 당신은 새로운 멤버쉽 객체 (루프 외부)를 생성하여 사용자와 교실 간의 새로운 연결을 생성 할 수 있습니다 (membership = Membership.objects.create (member = request.user, classroom = new_obj) ) member_id를 추가로 전달할 수 있습니다. POST의 id와 request.user의 id)는 기존 코드 (for 루프)를 사용하여 생성됩니다. 두 번째 옵션의 경우 양식의 일부 숨겨진 필드에 request.user.id를 저장해야합니다. – dzida