Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于django类的视图获取上下文数据获取意外的关键字参数_Python_Django_Django Forms_Django Class Based Views - Fatal编程技术网

Python 基于django类的视图获取上下文数据获取意外的关键字参数

Python 基于django类的视图获取上下文数据获取意外的关键字参数,python,django,django-forms,django-class-based-views,Python,Django,Django Forms,Django Class Based Views,我试图从基于django类的视图中创建一个CRUD应用程序。 这是我更新/创建注释的视图 class CreateNoteView(CreateView): model = Note template_name = 'edit_note.html' def get_success_url(self): return reverse('notes-list') def get_context_data(self): conte

我试图从基于django类的视图中创建一个CRUD应用程序。 这是我更新/创建注释的视图

class CreateNoteView(CreateView):

    model = Note
    template_name = 'edit_note.html'

    def get_success_url(self):
        return reverse('notes-list')

    def get_context_data(self):

        context = super(CreateNoteView, self).get_context_data(**kwargs)
        context['action'] = reverse('notes-create')
        return context


class UpdateNoteView(UpdateView):

    model = Note
    template_name = 'edit_note.html'

    def get_success_url(self):
        return reverse('notes-list')

    def get_context_data(self, **kwargs):

        context = super(UpdateNoteView, self).get_context_data(**kwargs)
        context['action'] = reverse('notes-edit',
                                    kwargs={'pk':self.get_object().id})
        return context
这是我的模型文件:

# Create your models here.
class Note(models.Model):

    title = models.CharField(max_length=200)
    description = models.TextField()
    pub_date = models.DateField(auto_now_add=True)
我的URL文件如下所示:

urlpatterns = patterns('',
       url(r'^create/$',CreateNoteView.as_view(), name='notes-create',),
       url(r'^$', ListNoteView.as_view(), name='notes-list',),    
       url(r'^edit/(?P<pk>\d+)/$', UpdateNoteView.as_view(), name='notes-edit',),                       
)

检查CreateNoteView.get_context_数据函数签名-/create/映射到URL中的CreateNoteView.py

检查CreateNoteView.get_context_数据函数签名-/create/映射到URL中的CreateNoteView.py

更新

def get_context_data(self):
CreateNoteView
中:

def get_context_data(self, **kwargs):

重写方法时(在本例中:
get\u context\u data
),应确保尽可能保留相同的签名:在本例中,
get\u context\u data
预计将接收
self,**kwargs


关于你的评论:

class NoteMixin(object):

    model = Note
    template_name = 'edit_note.html'

    def get_success_url(self):
        return reverse('notes-list')

     def get_context_data(self, **kwargs):
        context = super(NoteMixin, self).get_context_data(**kwargs)
        context['action'] = self.get_action()
        return context

class UpdateNoteView(NoteMixin, UpdateView):
    def get_action(self):
        return reverse('notes-edit', kwargs={'pk':self.get_object().id})

class CreateNoteView(NoteMixin, CreateView):
    def get_action(self):
        return reverse('notes-create')
更新

def get_context_data(self):
CreateNoteView
中:

def get_context_data(self, **kwargs):

重写方法时(在本例中:
get\u context\u data
),应确保尽可能保留相同的签名:在本例中,
get\u context\u data
预计将接收
self,**kwargs


关于你的评论:

class NoteMixin(object):

    model = Note
    template_name = 'edit_note.html'

    def get_success_url(self):
        return reverse('notes-list')

     def get_context_data(self, **kwargs):
        context = super(NoteMixin, self).get_context_data(**kwargs)
        context['action'] = self.get_action()
        return context

class UpdateNoteView(NoteMixin, UpdateView):
    def get_action(self):
        return reverse('notes-edit', kwargs={'pk':self.get_object().id})

class CreateNoteView(NoteMixin, CreateView):
    def get_action(self):
        return reverse('notes-create')

你能给我们看一下
CreateNoteView
的代码吗?很可能您正在重新定义那里的
get\u context\u data
,并且没有
**kwargs
参数。您可以向我们展示
CreateNoteView
的代码吗?很可能您正在重新定义那里的
get\u context\u data
,并且没有
**kwargs
参数。这个问题有点相切,但您能否告诉我如何从基类继承
CreateNoteView
UpdateNoteView
,为了防止重复?这样做会给我一个错误-
AttributeError:Generic detail view CreateNoteView必须使用对象pk或slug调用。
我认为出现问题的原因是,
CreateNoteView
是从
CreateView
继承的,而
UpdateNoteView
是从
UpdateView
继承的,因此
NoteMixin
不应该从
UpdateView
继承,如果不是UpdateView,那么它应该从哪里继承?@user1629366是的,对不起,
NoteMixin
应仅从
对象继承。糟糕,糟糕的复制粘贴@谢谢你的编辑。确实有一个错误。不知道为什么会被拒绝。这个问题有点无关紧要,但是你能告诉我如何从基类继承
CreateNoteView
UpdateNoteView
,为了防止重复?这样做会给我一个错误-
AttributeError:Generic detail view CreateNoteView必须使用对象pk或slug调用。
我认为出现问题的原因是,
CreateNoteView
是从
CreateView
继承的,而
UpdateNoteView
是从
UpdateView
继承的,因此
NoteMixin
不应该从
UpdateView
继承,如果不是UpdateView,那么它应该从哪里继承?@user1629366是的,对不起,
NoteMixin
应仅从
对象继承。糟糕,糟糕的复制粘贴@谢谢你的编辑。确实有一个错误。不知道为什么会被拒绝。