Django测试apis模型对象不存在

时间:2017-12-21 09:10:39

标签: python django testing

我创建了2个Django模型,一个User模型和一个Account模型。在User模型中,我有所有信息,在Account中,我有该用户的帐户详细信息。
我设计了一个视图,当我创建一个用户时,也创建了相应的帐户对象 网址:/user/将创建新的用户和帐户对象 但是当我编写测试来检查API时,我创建了一个新用户。用户对象是可访问的,但是当我访问帐户详细信息时,它会抛出models.object doesn't exist

class User(models.Model):
    user_name = models.CharField(max_length=35)
    first_name = models.CharField(max_length=35)
    last_name = models.CharField(max_length=35)
    email = models.EmailField(max_length=255)

class Account(models.Model):
    user = models.ForeignKey(User, on_delete = models.CASCADE)
    balance = models.IntegerField(default = 0)

def post(self, request):
    received_json_data = json.loads(request.body.decode("utf-8"))
    user = User(user_name=received_json_data['user_name'], first_name=received_json_data['first_name'],
                last_name=received_json_data['last_name'], email=received_json_data['email'])
    user.save()
    account = Account(user=user);
    account.save();

class TestUser(TestCase):
    def setUp(self):
        self.c = Client()
        user1 = {"email": "ram@gmail.com", "user_name": "ramu", "first_name": "ramesh", "last_name": "yadav"}
        data1 = json.dumps(user1)
        self.response = self.c.post('/user/', data1, content_type="application/json")
        self.assertEqual(self.response.status_code, 200)
        account = Account.objects.get(pk =1)

1 个答案:

答案 0 :(得分:0)

您正在尝试使用可能不存在的主键获取帐户。 您可以尝试以下列方式获取帐户:

get

这将返回该用户的所有帐户。如果一个用户拥有多个帐户, inputPayloadForReprocess.add(message.getInvocationProperty("storePayload").get(i)); break; } 方法将抛出错误。