Python 在Django中在何处执行以下代码?
试图学习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.
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的新东西
要完成您试图执行的操作,一种方法是使用djangoFormView
(或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的新东西
要完成您试图执行的操作,一种方法是使用djangoFormView
(或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的新东西
要完成您试图执行的操作,一种方法是使用djangoFormView
(或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的新东西
要完成您试图执行的操作,一种方法是使用djangoFormView
(或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.