2016-09-06 1 views
-2

이다 models.py보기의 model.objects.create가 작동하지 않습니다?

from django.db import models 
class Iot(models.Model): 
     user = models.CharField(max_length="50") 
     email = models.EmailField() 

내가 장고 rest_framework을 사용하고 내 views.py

def Test(request): 
    if request.method == 'PUT': 
     user = request.data['user'] 
     email = request.data['email'] 
     try: 
      s = Iot.objects.create(user=user) 
      print s.user 
      s.email = email 
      s.save() 
      return Response('ok', status=status.HTTP_200_OK) 
     except: 
      return Response('error',status=status.HTTP_400_BAD_REQUEST) 

이입니다. 내가 데이터를 보낼 때 데이터베이스 및 반환에 저장하지 않습니다

('오류', 상태 = status.HTTP_400_BAD_REQUEST)

+4

왜 사람들은 이것을 계속합니까? ** ** 예외를 숨기지 마십시오. try/except를 제거하고 * 실제 * 오류가 무엇인지 찾으십시오. –

답변

0

이메일없이 여잔를 만들려고하기 때문에 대부분의 경우 그 오류가 발생을, 하지만 필수 입력란입니다.

s = Iot(user=user) 
s.email = email 
s.save() 
: 당신은 당신의 코드가 사용자가 선택한 방법으로 작업을하려면

Iot.objects.create(user=user, email=email) 

같은 것을해야 다음 생성 할 제거 할 필요가 (세트는 한 번에 하나씩이 아니라 속성)

요청에 따라 모델에서 엔티티를 만드는 두 가지 다른 방법이 있습니다. 내부에 save() 메서드를 호출하므로 매우 동일하지만이 경우 더 편리하게 만듭니다.

또한 일반적으로 create()와 save()를 피해야합니다. DB에 대한 두 개의 쿼리가 표시되기 때문입니다.

UPD : 예외에 대한 @ Daniel의 덧글에 +1

+0

나는 이미 이것들을 시도했지만 여전히 작동하지 않는다. –

+0

당신은 예외를 인쇄 할 수 있겠습니까? 예외를 제외하고'exc :'와 같은 것을해라. –