我有2个型号:在myapp / Models.py
中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 :(得分: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