, 나는 이런 식으로 뭔가 할 노력하고있어 :왜이 모델을 다른 모델에 추가하기 전에이 모델을 저장해야합니까? 장고
# if form is valid ...
article = form.save(commit=False)
article.author = req.user
product_name = form.cleaned_data['product_name']
try:
article.product = Component.objects.get(name=product_name)
except:
article.product = Component(name=product_name)
article.save()
# do some more form processing ...
을하지만 그것은 나 알려줍니다
열 "PRODUCT_ID"에서null 값은하지 null이 제약 조건을 위반
그러나 이것이 왜 문제인지 이해할 수 없습니다. article.save()
이 호출되면 제품을 으로 만들고 (생성하고 ID를 생성 할 수 있어야합니다.
나는 except
블록에이 코드를 사용하여이 문제를 해결하려면 얻을 수 있습니다 :
product = Component(name=product_name)
product.save()
article.product = product
article.save()
이 실패 할 경우, 이미 새로운 구성 요소/제품을 만든 것이기 때문에 그러나이 날 우려하는 이유입니다. 나는 그들이 성공하거나 실패하기를 바란다.
이 문제를 해결할 수있는 좋은 방법이 있습니까?
참고 사항 : article.product = Component.objects.create (name = product_name) 조금 깔끔합니다. – michael
@michael : 오!내가 그걸 할 수 있는지 몰랐다. 적어도 조금은 나아졌습니다. – mpen