我将Django 1.6与admin-sites一起使用。
我已将Hoge
模型设置为用户模型的外键。
class Hoge(models.Model):
user = models.ForeignKey(User, unique=False, verbose_name=u'User')
在管理网页中,它显示了针对外键的用户下拉列表,但是我希望这只显示当前用户。
你能告诉我如何写admin.py
吗?
class HogeAdmin(admin.ModelAdmin):
# something
答案 0 :(得分:0)
你想要override the formfield_for_foreignkey
,如下:
class HogeAdmin(admin.ModelAdmin):
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == "user":
kwargs['queryset'] = User.objects.filter(pk=request.user.pk)
kwargs['initial'] = request.user
return super(HogeAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
这只是改变user
字段,并将查询集设置为与当前用户(将只是当前用户)具有相同主键(pk
)的所有用户,并设置当前用户的初始值。