2017-12-27 18 views
0

を設定するので、私は2つのモデルがあります:ジャンゴ1.11一対多の関係が

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' 

しかし、セットを取得するための正しい方法だ私の理解から。私は何かを間違えたのですか?それともテストの問題ですか?

答えて

2

関連するクエリーセットを取得するには、クラス名を小文字にして_setを追加します。試してくださいconsumptiontimepoint_set

related_nameパラメータを使用して手動でリバースリレーションシップ名を設定することもできます。

+0

ああ、新しい、それはダムのエラーだった。助けてくれてありがとう - 私はそれが許せば受け入れます。 – Darkstarone