Django 1.11一对一关系无关联

2024-10-06 10:41:53 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有两个模型:

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'

但据我所知,这才是正确的方法。我是不是给什么东西起错名字了?或者这是一个测试问题?你知道吗


Tags: selfiddatamodelobjectbasictimemodels
1条回答
网友
1楼 · 发布于 2024-10-06 10:41:53

为了获得相关的查询集,类名是小写的,并附加_set。试试consumptiontimepoint_set

还可以使用^{}参数手动设置反向关系名称。你知道吗

相关问题 更多 >