ManyToMany 관계를 맺은 객체는 객체변수 중 외부객체와 관련 없는 객체변수들만으로 먼저 저장을 한다. 그리고 난 후 add, remove 함수를 사용하여 외부 객체와의 관계를 정의한 후, 다시 한 번 저장해야 한다. 아래는 예제 코드이다.
def register(request) equip = Equipment() equip.model_no = request.POST.get('model_no', '') equip.serial_no = request.POST.get('serial_no', '') equip.registered_date = datetime.now() equip.save() equip.alpha_code.add(Code.objects.get(id=int(request.POST.get('alpha_code')))) equip.bravo_code.add(Code.objects.get(id=int(request.POST.get('bravo_code')))) equip.charlie_code.add(Code.objects.get(id=int(request.POST.get('charlie_code')))) equip.save() return HttpResponseRedirect(reverse('somewhere:defcon', args=(equip.id,))) | cs |
참고로, ForeignKey나 OneToOne은 아래와 같이 처리하면 된다.
cup = Cup() cup.name = 'Starbucks Tumbler #21' cup.store = Store.objects.get(name='STARBUCKS') food.save() | cs |
참고. 실행환경
- OS : Windows 7 Professional K
- Python : v 2.7.5
- Django : v 1.7.11
0 댓글