2011-09-16 16 views
0

を使用してエントリを制限する:myappの中で/ Models.pyどのように私は2つのモデルを持っているのForeignKey

class Foo(models.Model): 
    place = models.CharField(max_length=200) 
    foo_admin = models.ForeignKey(User, limit_choices_to={'is_staff': True}) 


class Fighter(models.Model): 
    foo = models.ForeignKey(Foo,limit_choices_to={'foo_admin': currentuser}) 

「をCurrentUserに」または(ユーザー名)を取得し、ForeignKeyの中の選択肢を制限する方法はありますか? つまり、 'currentuser'がFooに保存されているfoo_adminと等しい場合にのみ、FighterはFooを表示します。

+0

制限方法は?特定の番号に? – WTK

+0

選択肢を1人のユーザ(つまり、現在のユーザ)に限定します。私は明確です。 – vnayak01

答えて

0

モデルでこのようなことを行うことは不可能です。ビューのカスタムフィルタには、.filter(foo__foo_admin = reguest.user)のようなものが必要です。また、管理インタフェースでは、次のような方法で現在のユーザーを取得する必要があるため、さらに難しくなります。

class Example(admin.ModelAdmin): 

def get_form(self, request, obj=None, **kwargs): 
    form = super(Example, self).get_form(request, obj, **kwargs) 
    form.current_user = request.user 
    return form 
関連する問題