首页 > 解决方案 > Django 模型测试

问题描述

我在测试时尝试打印模型信息时遇到问题。这是我的代码:

from django.test import TestCase
from .models import User, Followed, Following, Post
# Create your tests here.
class User_test(TestCase):
    def setUp(self):
        a = User.objects.create(username="a", password="a", email='a@a')
        f = User.objects.create(username="f", password="f", email='f@f')

        Followed.objects.create(user=a)
        Following.objects.create(user=f)

        Followed.objects.create(user=f)
        Following.objects.create(user=a)



    def test_a(self):
        userA = User.objects.get(username='a')
        userF = User.objects.get(username='f')

        peopleFollowingF = Followed.objects.get(user=userF)
        peopleFollowingA = Followed.objects.get(user=userA)

        Afollowing = Following.objects.get(user=userA)
        Ffollowing = Following.objects.get(user=userF)
        userA.save()
        Ffollowing.follower.add(User.objects.get(username='a'))
     
        Ffollowing.save()
        print(Ffollowing.follower)

当我运行测试时,我得到 print network.User.None
有人可以帮我成功打印添加 userA 吗?

标签: djangotestingmodel

解决方案


Ffollowing.followermanager,而不是 a QuerySet,您可以使用.all()将其转换为 a QuerySet,这将打印元素:

print(Ffollowing.follower.all())

推荐阅读