我擦,我刚才回答的不见了?
....什么情况?
class User(models.Model): a = models.ForeignKey('B') def my_pro(self): return C.objects.get(user_id=self.id).name c_name = property(my_pro)
你的C和User之间需要有一定的关系,不然没办法查询
@Rich.T: 哦,是这样啊,在model.admin当中直接访问c_name就可以查询了吗?
@落花无情人葬月: 你是要查询还是要显示
@Rich.T: 显示,显示到admin的A表当中,
(_('Personal info'), {'fields': ('c_name','first_name', 'last_name', 'company', 'email',)}),
我这么写会报错
@落花无情人葬月:
首先你A表需要和C表有关系,不然怎么查询
class useradmin(admin.ModelAdmin):
list_display = ['字段', 'c_name']
@Rich.T: list_display确实起效果了,不过我想在修改页面也显示c_name的信息
fieldsets = ( (None, {'fields': ('username', 'password')}), (_('Personal info'), {'fields': ('first_name', 'last_name', 'company', 'email',)}), # ('级别', {'fields': ('compclass', )}), (_('Permissions'), {'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions')}), (_('Important dates'), {'fields': ('last_login', 'date_joined')}), )
@Rich.T:
FieldError at /admin/auth/user/11/change/ Unknown field(s) (c_name) specified for User. Check fields/fieldsets/exclude attributes of class UserAdmin.
list_display正常显示,页面当中的会报错
@落花无情人葬月: 只需要有外键关系 会自动加到修改页面
@Rich.T: 并没有
@Rich.T:
在A表下面加入下面代码
def __unicode__(self): return ('name:%s'%(self.company.compclass.name))
结果只显示在头部,我想把它显示成可以修改的
@落花无情人葬月: 你在需要表单修改的model里这样写
比如你要在B里修改A,B中有一个字段是A的外键
a = models.ForeignKey(A)
@Rich.T: 谢谢你的回答,我的问题已经解决,原因是我的数据结构没有设计好,导致遇到这个问题,不过你的回答对我很有帮助