簡體   English   中英

Django 中的同一 model 中具有更多字段的不同用戶

[英]Different user with more fields in the same model in Django

我計划為兩個不同的用戶使用同一個用戶 model,在一個 model 中添加一些附加字段。 是否可以在 Django 中執行此操作? 如果有可能,我該怎么做?

你有兩個選擇:

首先

您創建一個新的 Model(稱為 ExtendedUser)並將額外的字段放入該 model 中。 然后將 ExtendedUser model 設置為從 MainUser model 繼承。 這將創建兩個表,它們之間具有一對一的鏈接。 這樣做的好處是您的 ExtendedUser model 將繼承您原始 MainUser model 中定義的任何方法,並且您只需要向 ExtendedUser model 添加方法,如果您絕對有的話。 您還可以編寫可以輕松處理 MainUser 和 ExtendedUser 模型的函數,因為它們都是 MainUser model 的實例。 使用繼承的好處之一是,如果您在 ExtendedUser model 上編寫查詢以獲取所有字段,它也可以很好地獲取 MainUser 字段。

第二個(更糟糕的)選項:

有一個擴展的 model,上面有一個標志,表示是否使用額外的字段。 這可以工作,但會使您的查詢更加復雜,並且如果您需要對額外的字段進行索引,則索引的效率可能會降低一些。

注意:在 SQL 中擁有第二個表與兩者之間的關系並不是一件壞事——這就是通常管理數據的方式。 如前所述,為某些類型的用戶提供特殊的可選字段並不好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM