2

我在Django的新人,在這裏是問題:如何從Django中的基礎對象正確獲取派生類對象?

我的模型類:

def Client(models.User) # django.contrib.auth.User 
    company_name=models.CharField() 

我怎麼能得到客戶對象時,我有用戶對象(user是客戶端)?一種方式是通過用戶名來過濾對象:

user=request.user 
client=Client.objects.filter(username=user.username) 

但我認爲有一些不同的,更漂亮的方法在Django要做到這一點,因爲用戶是客戶端(它們與一到一個數據庫),是那裏嗎?

回答

2

documentation on inheritance

如果你有一個User這也是一個Client,你可以從User對象到Client目的是通過使用型號名稱的小寫形式:

my_user = User.objects.get(username = 'foobar') 
client = my_user.client 

如果User實例不是Client,你會得到一個Client.DoesNotExist例外。

+1

這沒有幫助。如果我知道我有一個'Client',那麼我可以首先使用client = Client.objects.get(....)'。在大多數情況下,你沒有N個孩子班。 – guettli 2015-06-09 11:54:04

相關問題