所以我有两个型号:
class UserData(models.Model):
""" Holds basic user data. """
id = models.IntegerField(primary_key=True, editable=False) # id is taken from data.
class ConsumptionTimePoint(models.Model):
""" Individual consumption time points with a One-to-Many relationship with UserData """
user_data = models.ForeignKey(UserData, on_delete=models.CASCADE)
当我尝试通过创建它们来测试它们时,以及它们在测试中的关系:
def test_basic_model_creation(self):
user_data_object = UserData.objects.create(id=1)
user_data_object.save()
consumption_time_point_object = ConsumptionTimePoint.objects.create(user_data=user_data_object)
consumption_time_point_object.save()
self.assertIsNotNone(consumption_time_point_object.user_data)
self.assertEquals(1, len(user_data_object.consumption_time_point_set.all()))
我收到以下错误:
AttributeError: 'UserData' object has no attribute 'consumption_time_point_set'
但从我的理解,这是获得该集合的正确方法。我有什么名字吗?或者这是一个测试问题?
要获取相关的查询集,类名称是小写的,并且附加了_set
。试试consumptiontimepoint_set
您还可以使用related_name
参数手动设置反向关系名称。