django 질문드려요.

조회수 1558회

django 질문입니다.이전질문 이어서 질문드립니다.

    class Apply(models.Model):
    writer=models.ForeignKey(Register, on_delete=models.CASCADE,null=True)

출력이미지

모델에서 ForeignKey를 이용해서 접수 모델을 작성하였는데요. ID를 선택형으로 나오네요. 아이디가 많을 수록 writer의 선택 id가 많네요. 제가 만들고 싶은것은 A라는 아이디로 작성을 하면 작성 모델의 A라는 회원 정보가 자동으로 작성모델의 저장되길 바라는데 지금은 아이디를 선택하는 형태로 form이 저장되어있는데 바꿀 수 없을까요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 폼에서 입력받지 않으려면 exclude를 이용하세요.

    class SomeForm(ModelForm):
        class Meta:
            model = Apply
            exclude = ['writer']
    

    그리고 form의 save를 override해서 거기에서 id를 가지고 저장하면 됩니다.

        class Meta:
                model = Apply
                exclude = ['registereturn']
        def save(self, commit=True):
            Apply = super(ApplyForm, self).save(commit=False)
            if commit:
                Apply.register=Register.objects.get(id=1)
                Apply.save()
            return Apply
    
    • def save(self, commit=True): Apply = super(ApplyForm, self).save(commit=False) if commit: Apply.register=Register.objects.get(id=1) Apply.save() return Apply 2016.5.18 17:32
    • 편집요청 주신 부분이 맞지 않나요? id=1대신에 사용자의 id를 넣기만 하면 될 것 같습니다. 정토드 2016.5.18 19:46
    • 오류는 안나지만 안됩니다 ㅜ.ㅜ 2016.5.19 11:53

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)