2017-09-14 18 views
0

我想分配trunsaction_id每個user_id.Now用戶模型是我想分配trunsaction_id每個user_id說明

class User(models.Model): 
    trunsaction_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) 
    regist_date = models.DateTimeField(auto_now=True) 
    user_id = models.CharField(max_length=200,null=True) 
    name = models.CharField(max_length=200,null=True) 
    age = models.CharField(max_length=200,null=True) 

當運行該代碼,trunsaction_id在登記的依次分配。 是否可以分配trunsaction_id每個user_id?如果答案是肯定的,我想知道方式。 例如,如果user_id是1,trunsaction_id是其中一個被連接user_id & trunsaction_id在得分低於1_randomly trunsaction_id。是否有可能?如果答案是否,是否有另一種方式分配trunsaction_id每個user_id?

回答

0

這是不是很清楚你想要完成什麼。

如果您嘗試使用複合主鍵,則Django不支持此功能。請參閱文檔here

如果您試圖獲得合併這兩個字段的列,可以嘗試下面的解決方案。

然而,根據您的需要,您最好在您的Querysets中執行此操作。請說明你想達到的目標。

class User(models.Model): 
    trunsaction_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) 
    regist_date = models.DateTimeField(auto_now=True) 
    user_id = models.CharField(max_length=200,null=True) 
    name = models.CharField(max_length=200,null=True) 
    age = models.CharField(max_length=200,null=True) 

    @property 
    def composite(self): 
     return self.user_id + "_" + self.trunsaction_id 
+0

THX烏爾answer.I寫道烏爾代碼,但我不知道如何使用複合方法return.I想放回到用戶的模式,所以我寫了'user_trunsaction_id = models.CharField(MAX_LENGTH = 200,空= True)'但我無法理解如何將id添加到此列。 – user8563636

+0

刪除'@屬性'並試試這個: 'user_trunsaction_id =''.join([trunsaction_id,'_',user_id]' –

+0

是否意味着我應該更換'user_trunsaction_id = models.CharField(max_length = 200,null =真的)'user_trunsaction_id =''.join([trunsaction_id,'_',user_id]'在用戶模型中?我寫了它,但TypeError:序列項0:期望的str實例,CharField發現錯誤發生 – user8563636