我在Django中有一個簡單的數據模型,類別爲Department
和Role
。 (例如,清酒)基於現有屬性值的Django默認模型屬性?
A Department
與Role
具有一對多的關係,並且Role
類包含一個用於標識特定實例的ID。例如:
> Department: Sales
>> Role (1): Accounts
>> Role (3): Closing
> Department: Maintenance
>> Role (2): IT
>> Role (4): Equipment
這樣做的缺點是,每個角色使用自己的全球 ID。因此,如果您要創建大量的銷售角色,然後創建額外的維護角色,那麼新的維護角色將擁有令人難以置信的大量ID,並且看起來「不同步」。
因此,我想爲每一個角色一個部門特有的ID爲好,像這樣:
class Role(models.Model):
department_id = models.IntegerField()
的缺點是,我無法找到一個辦法之一:
1)有現成的角色其現有的ID轉移到新的領域department_id
,留下的空白,但防止未來的差距出現:
> Department: Sales
>> Role (1): Accounts
>> Role (3): Closing
>> Role (4): *New Sales Role*
> Department: Maintenance
>> Role (2): IT
>> Role (4): Equipment
>> Role (5): *New Maintenance Role*
2)或者,default
值動態地分配給該掃描每個部門的所有角色表,併爲它們分配新的ID的方法:
> Department: Sales
>> Role (1): Accounts
>> Role (2): Closing
>> Role (3): *New Sales Role*
> Department: Maintenance
>> Role (1): IT
>> Role (2): Equipment
>> Role (3): *New Maintenance Role*
我使用的是南來處理架構遷移。