Django ModelAdmin自定义方法obj参数

时间:2016-09-19 05:43:09

标签: python django

在Django的文档中 Django Document

它有以下代码。

from pymongo import MongoClient

client = MongoClient()
db = client.myDB
coll_name = 'Peter'
db[coll_name].insert_one({'1': 'Right collection'})

我不明白自定义方法view_birth_date(self, obj )这个obj参数来自哪里?

注意在最后一行,它调用了这个函数,

from django.contrib import admin

class AuthorAdmin(admin.ModelAdmin):
    fields = ('name', 'title', 'view_birth_date')

    def view_birth_date(self, obj ):
        return obj.birth_date

    view_birth_date.empty_value_display = '???'

但没有为obj传递任何参数。我不明白obj如何获得价值。

谢谢!

1 个答案:

答案 0 :(得分:2)

  

我不明白这个view_birth_date(self, obj)参数来自哪个自定义方法obj

这个方法由Django的机器调用,obj也由它传递。它只是一个预定义的界面。

  

view_birth_date.empty_value_display = '???'   但没有为obj传递任何参数。我不明白obj如何获得价值。

此行与您的问题无关。同样,根据接口,Django在查看您的方法(函数)时会查找empty_value_display属性,以找出当前值为空时开发人员期望看到的值。

是的,看起来很奇怪,但它只是Django如何工作,它的创造者如何使它工作。他们选择了这个界面 - 你只需要使用文档来找到界面。