这是我的view.py
class categAdmin(admin.ModelAdmin):
change_form_template = 'category_forms.html'
list_display = ['title']
model = Category
fields = ['status','title','category_post','body', 'photo',
'url','slider','Gallery','lists','pk_tree','video','maps']
# def render_change_form(self, request, context, **kwargs):
# post = Post.objects.all()
# context['eve'] = post
# return super(categAdmin,self).render_change_form(request, context, **kwargs)
def item_add(request, self, post_id):
tree = post_id
return self.add_view(request, extra_context={'tree': tree})
我遇到错误item_add(),缺少1个必需的位置参数:'request'
答案 0 :(得分:0)
您需要交换self
和request
参数。
def item_add(self, request, post_id):
tree = post_id
...
答案 1 :(得分:0)
始终记住,方法是绑定到对象的,并且每当您调用方法时,python都会将self参数(在其上调用方法的对象)隐式传递给方法调用,在您的示例中:
class CategAdmin:
def item_add(self, request, post_id):
pass
将是签名格式,请注意self对象是方法签名中的第一个参数。因此,当您这样做
categoryAdmin = CategAdmin()
categoryAdmin.item_add(request,123)
this is what will be called by the python interpreter CategAdmin.item_add(categoryAdmin,request,123)
另一个反馈将是改善您的编码风格,即遵循一些约定,例如始终以大写字母开头类名称,为类以及方法和变量赋予有意义的名称。 这使您的代码更具可读性,并且通过此调试将更快。
干杯!