【发布时间】:2011-06-04 19:44:01
【问题描述】:
我已经解决了使用此代码获取正在编辑的对象 id 的问题:
class CompanyUserInline(admin.StackedInline):
"""
Defines tabular rules for editing company users direct in company admin
"""
model = CompanyUser
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == "user":
users = User.objects.filter( Q(is_superuser=False) )
query = Q()
for u in users:
aux = CompanyUser.objects.filter(user=u)
if aux.count() == 0:
query |= Q(pk=u.id)
try:
cpu = CompanyUser.objects.filter(company__id=int(request.path.split('/')[4]))
for p in cpu:
query |= Q(pk=p.user.id)
except:
pass
kwargs["queryset"] = User.objects.filter(query).order_by('username')
return super(CompanyUserInline, self).formfield_for_foreignkey(db_field, request, **kwargs)
但是,int(request.path.split('/')[4]) 真的很丑。我想知道如何从 Django AdminModel 获取 id。我确定它在里面的某个地方,有人知道吗?
提前感谢您! ;D
【问题讨论】:
标签: django django-models django-admin