我正试图对模型进行测试,并且遇到了一些有外键的测试。当我试着用setUp制作卡片时,我无法做到。我不明白为什么。属性category的预期值是int。无论是category,category.id,还是“测试类别”工作。
代码:models.py
class Category(models.Model):
category_name = models.CharField(max_length=32)
class Card(models.Model):
category = models.ForeignKey(Category, on_delete=models.CASCADE)
question = models.CharField(max_length=255)
answer = models.TextField()
slug = models.SlugField()test_models.py
class CardTestCase(TestCase):
def setUp(self) -> None:
category = Category.objects.create(category_name='Test Category')
Card.objects.create(category=category,
question='Hello?',
answer='Hello!',
slug='slug'
)
def test_card_exists(self):
category = Category.objects.get(category_name='Test Category')
L29 card = Card.objects.get(category=category.id,
question='Hello?',
answer='Hello!',
slug='slug'
)错误:
line 29, in test_card_exists
card = Card.objects.get(category=category.id,
django_cards.cards.models.Card.DoesNotExist: Card matching query does not exist.发布于 2022-10-29 10:11:05
与其提供category.id,不如只提供类别对象本身。
card = Card.objects.filter(category=category,
question='Hello?',
answer='Hello!',
slug='slug'
)我使用的是过滤器,而不是get,以防给定参数有多个对象。
https://stackoverflow.com/questions/74244118
复制相似问题