【发布时间】:2018-02-09 12:59:04
【问题描述】:
我想为具有多对多关系的 Django 模型编写一个测试,但我收到了这个错误:
ValueError: "" 需要在字段 "id" 之前有一个值 可以使用这种多对多关系。
我的测试:
class ModelTestCase(TestCase):
def setUp(self):
self.mock_file = mock.MagicMock(File)
self.mock_file.name = 'MockFile'
self.before_count = Tour.objects.count()
self.tour_agency = TourAgency.objects.create(
name='agency',
username='agency')
self.tour_category = TourCategory.objects.create(name='category')
self.tour_equipment = TourEquipment.objects.create(name='equipment')
self.tour_leader = TourLeader.objects.create(
name='leader',
email='leader@sample.com',
username='leader',
bio='sample text',)
self.tour_tag = TourTag.objects.create(name='tag')
def test_model_can_create_tour(self):
self.tour = Tour.objects.create(
name='tour',
description='description',
summary='summary',
agency=self.tour_agency,
equipment=self.tour_equipment,
category=self.tour_category,
tags=self.tour_tag,
activity_type='activity type',
date=datetime.now,
photo=self.mock_file)
self.tour.save()
self.tour.save_m2m()
count = Tour.objects.count()
self.assertNotEqual(self.before_count, count)
我会尝试使用.save() 保存对象,但它不起作用。
【问题讨论】:
标签: python django testing django-models