2

私はジャンゴでは新人だし、ここで質問です:Djangoの基本オブジェクトから派生クラスオブジェクトを正しく取得する方法は?

私はモデルクラスを持っている:私は、ユーザーオブジェクト(およびユーザーがクライアントである)がある場合

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

はどのようにしてクライアントオブジェクトを得ることができますか? 、

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

しかし、ユーザーがクライアントであるので、私は(彼らは1対1のデータベースで関連している)、ジャンゴでこれを行うには、いくつかの異なった、より美しくする方法があると思います。一つの方法は、ユーザ名によってオブジェクトをフィルタリングすることですそこには?

答えて

2

documentation on inheritance

あなたもClientあるUserを持っている場合は、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

関連する問題