Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.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 Views_Django Generic Views - Fatal编程技术网

Python 在Django中在何处执行以下代码?

Python 在Django中在何处执行以下代码?,python,django,django-forms,django-views,django-generic-views,Python,Django,Django Forms,Django Views,Django Generic Views,试图学习Django,也许我把主要概念弄错了 创建表单: class PostForm(ModelForm): class Meta: model = Post exclude = ('pub_date', ) labels = { 'body_text': _('Post'), } 使用以下表单调用视图: class PostCreate(generic.CreateView): template_name = 'post/post_form.

试图学习Django,也许我把主要概念弄错了

创建表单:

class PostForm(ModelForm):
class Meta:
    model = Post
    exclude = ('pub_date', )
    labels = {
        'body_text': _('Post'),
}
使用以下表单调用视图:

class PostCreate(generic.CreateView):
    template_name = 'post/post_form.html'
    form_class = PostForm
问题是我需要手动输入排除的值。 蟒蛇

我不知道在哪里输入这个代码。我对视图函数的理解是,它们包含生成页面的代码,因此不会再次调用,但我可能错了。或者我不能在这种情况下使用通用视图


这个问题的解决方案就足够了,但对视图进行概念性解释会更好

什么是
POSTView
?是你创造的东西,还是django的新东西

要完成您试图执行的操作,一种方法是使用django
FormView
(或
CreateView
)并重写
form\u valid
方法

class PostCreate(CreateView):
    template_name = 'post/post_form.html'
    form_class = PostForm

    def form_valid(self, form):        
        author = form.save(commit=False)
        author.title = 'Mr'
        author.save()
        # return HttpResponse

什么是
POSTView
?是你创造的东西,还是django的新东西

要完成您试图执行的操作,一种方法是使用django
FormView
(或
CreateView
)并重写
form\u valid
方法

class PostCreate(CreateView):
    template_name = 'post/post_form.html'
    form_class = PostForm

    def form_valid(self, form):        
        author = form.save(commit=False)
        author.title = 'Mr'
        author.save()
        # return HttpResponse

什么是
POSTView
?是你创造的东西,还是django的新东西

要完成您试图执行的操作,一种方法是使用django
FormView
(或
CreateView
)并重写
form\u valid
方法

class PostCreate(CreateView):
    template_name = 'post/post_form.html'
    form_class = PostForm

    def form_valid(self, form):        
        author = form.save(commit=False)
        author.title = 'Mr'
        author.save()
        # return HttpResponse

什么是
POSTView
?是你创造的东西,还是django的新东西

要完成您试图执行的操作,一种方法是使用django
FormView
(或
CreateView
)并重写
form\u valid
方法

class PostCreate(CreateView):
    template_name = 'post/post_form.html'
    form_class = PostForm

    def form_valid(self, form):        
        author = form.save(commit=False)
        author.title = 'Mr'
        author.save()
        # return HttpResponse

本例使用的是函数视图,而不是基于类的视图。您可以在
窗体\u valid
方法内的类视图中执行此操作,但您需要删除第一行,因为窗体已传递给该方法。

此示例使用的是函数视图,而不是基于类的视图。您可以在
窗体\u valid
方法内的类视图中执行此操作,但您需要删除第一行,因为窗体已传递给该方法。

此示例使用的是函数视图,而不是基于类的视图。您可以在
窗体\u valid
方法内的类视图中执行此操作,但您需要删除第一行,因为窗体已传递给该方法。

此示例使用的是函数视图,而不是基于类的视图。您可以在
窗体\u valid
方法内的类视图中执行此操作,但当窗体已传递给该方法时,您需要删除第一行。

如果您使用的是泛型视图,您应该查看并查找从祖先(MRO)继承的方法

在这里,您可以重写post方法,在保存模型实例之前为pub_date字段指定一个值。比如:

class PostCreate(generic.CreateView):
    template_name = 'post/post_form.html'
    form_class = PostForm

    def post(self, request, *args, **kwargs):

         form = PostForm(request.POST)

         if form.is_valid():
             post = form.save(commit=False)
             post.pub_date = datetime.now()
             post.save()

             return self.form_valid(form)

         return self.form_invalid(form)
您甚至可以直接使用form_有效方法重写。 无论哪种方式,都要提醒,可以通过GET请求(包括表单的表示,对于创建视图通常为空)和POST(表单提交)调用视图

查看Django doc for ModelForm以更好地理解绑定和未绑定表单行为


希望这有帮助

如果您使用的是泛型视图,您应该查看并查找从祖先(MRO)继承的方法

在这里,您可以重写post方法,在保存模型实例之前为pub_date字段指定一个值。比如:

class PostCreate(generic.CreateView):
    template_name = 'post/post_form.html'
    form_class = PostForm

    def post(self, request, *args, **kwargs):

         form = PostForm(request.POST)

         if form.is_valid():
             post = form.save(commit=False)
             post.pub_date = datetime.now()
             post.save()

             return self.form_valid(form)

         return self.form_invalid(form)
您甚至可以直接使用form_有效方法重写。 无论哪种方式,都要提醒,可以通过GET请求(包括表单的表示,对于创建视图通常为空)和POST(表单提交)调用视图

查看Django doc for ModelForm以更好地理解绑定和未绑定表单行为


希望这有帮助

如果您使用的是泛型视图,您应该查看并查找从祖先(MRO)继承的方法

在这里,您可以重写post方法,在保存模型实例之前为pub_date字段指定一个值。比如:

class PostCreate(generic.CreateView):
    template_name = 'post/post_form.html'
    form_class = PostForm

    def post(self, request, *args, **kwargs):

         form = PostForm(request.POST)

         if form.is_valid():
             post = form.save(commit=False)
             post.pub_date = datetime.now()
             post.save()

             return self.form_valid(form)

         return self.form_invalid(form)
您甚至可以直接使用form_有效方法重写。 无论哪种方式,都要提醒,可以通过GET请求(包括表单的表示,对于创建视图通常为空)和POST(表单提交)调用视图

查看Django doc for ModelForm以更好地理解绑定和未绑定表单行为


希望这有帮助

如果您使用的是泛型视图,您应该查看并查找从祖先(MRO)继承的方法

在这里,您可以重写post方法,在保存模型实例之前为pub_date字段指定一个值。比如:

class PostCreate(generic.CreateView):
    template_name = 'post/post_form.html'
    form_class = PostForm

    def post(self, request, *args, **kwargs):

         form = PostForm(request.POST)

         if form.is_valid():
             post = form.save(commit=False)
             post.pub_date = datetime.now()
             post.save()

             return self.form_valid(form)

         return self.form_invalid(form)
您甚至可以直接使用form_有效方法重写。 无论哪种方式,都要提醒,可以通过GET请求(包括表单的表示,对于创建视图通常为空)和POST(表单提交)调用视图

查看Django doc for ModelForm以更好地理解绑定和未绑定表单行为


希望这有帮助

这是generic.CreateView,很抱歉。我编辑了它。它是generic.CreateView,很抱歉。我编辑了它。它是generic.CreateView,很抱歉。我编辑了它。它是generic.CreateView,很抱歉。我编辑了它。它应该是generic.CreateView。我修好了。很抱歉,它应该是generic.CreateView。我修好了。很抱歉,它应该是generic.CreateView。我修好了。很抱歉,它应该是generic.CreateView。我修好了。很抱歉。谢谢你提醒我重写继承的函数+1感谢您提醒我重写继承的函数+1感谢您提醒我重写继承的函数+1感谢您提醒我重写继承的函数+1.