2012-08-16 77 views
0

我想在django-admin中使用查詢集(queryset))來獲取所有對象,根據查詢集的實現,我想顯示查詢集的某些屬性以供查看。 。例如,我想展現的人的身份證,人的父,人的parentname,電子郵件等從django-admin中的查詢集獲取屬性

在Django文檔中提供的例子是:

class MyModelAdmin(admin.ModelAdmin): 
    def queryset(self, request): 
     qs = super(MyModelAdmin, self).queryset(request) 
     if request.user.is_superuser: 
      return qs 
     return qs.filter(author=request.user) 

我肯定會想改善這個。

我已經試過這樣的事情:

class ChildParentAdmin(admin.ModelAdmin): 
    list_display = ('displayname', 'StudentID',) 
    search_fields = ['displayname',] 

    def queryset(self, request): 
     qs = super(MyModelAdmin, self).queryset(request) 
    def StudentID(self,queryset): 
     for student in queryset: 
      return student.pk 

點我被困在你如何使用查詢集和執行像得到每個孩子的ID,每個孩子的家長的名字等進一步的行動...想要去這樣做this.Would真的很感謝有這方面的幫助,一些指導...謝謝...

+1

django admin已經在'change_list'視圖(即/ admin/app/model /)中顯示了屬性。要更改每行顯示哪些屬性,只需使用['list_display'](https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_display) – 2012-08-16 11:08:45

+0

我有的模型是通過ForeignKey與其他模型(如父)相關聯,所以我需要從其他模型中獲取數據並顯示它..例如\t def Parent_First_Name(self): \t \t 012 = = student.relationships.filter role = StudentAdultRelationship.PARENT)[0] .adult return'%s'%adult.profile.firstname Parent_First_Name.short_description ='Parent First Name' – lakesh 2012-08-16 12:11:52

+0

我想將其添加到queryset中的每個項目。 – lakesh 2012-08-16 12:15:08

回答

0
def StudentID(self, obj): 
    return '%s' % obj.pk 
StudentID.short_description = 'StudentID' 
def Student_Name(self, obj): 
    return '%s' % obj.name 

這是它。你不必查詢過所有做的正確方法查詢集中的對象。只需要通過obj。它將運行它的所有對象。還有其他一些方法可以做到這一點,這不涉及課程本身。要詳細瞭解這一點,請參閱list_display Django Admin。這些例子非常清楚。