提交与此视图关联的表单时出现此错误。不知道到底是什么问题,考虑到我有一个非常相似的结构形式,它的工作很好。
#views.py
class Facture_Creer(SuccessMessageMixin, CreateView):
model = Facture
template_name = "facturation/nouvelle_facture.html"
form_class= FormulaireFacture
# permet de retourner a l'URL pointant vers le membre modifie
def get_success_url(self):
return reverse_lazy('facture_consulter',kwargs={'pk': self.get_object().id})
class Facture_Update(SuccessMessageMixin, UpdateView):
model = Facture
template_name = "facturation/nouvelle_facture.html"
form_class= FormulaireFacture
success_message = "Facture mise à jour avec succes"
# permet de retourner a l'URL pointant vers le membre modifie
def get_success_url(self):
return reverse_lazy('facture_consulter',kwargs={'pk': self.get_object().id})
#urls.py
urlpatterns = patterns('',
url(r'^$', TemplateView.as_view(template_name="facturation/index.html")),
url(r'^facture/$', FactureView.as_view()),
url(r'^facture/(?P<id>\d+)', FactureView.as_view(), name='facture_consulter'),
url(r'^facture/ajouter/$', Facture_Creer.as_view(), name='facture_creer'),
url(r'^facture/modifier/(?P<pk>\d+)/$', Facture_Update.as_view(), name='facture_update'),
url(r'^membre/ajouter/$', Membre_Creer.as_view(), name='membre_creer'),
url(r'^membre/modifier/(?P<pk>\d+)/$', Membre_Update.as_view(), name='membre_update'),
#url(r'membre/(?P<pk>\d+)/supprimer/$', Membre_Supp.as_view(), name='membre_delete')
)
urlpatterns += staticfiles_urlpatterns()
您需要传递一个对象标识符(pk或slug),这样您的视图就知道它们在操作哪个对象。
举个例子:
看第二个怎么有
(?P<pk>\d+)/
?这将向UpdateView传递一个pk,以便它知道要使用哪个对象。因此,如果转到facture/modifier/5/
,那么UpdateView将修改pk为5的对象。如果不想在url中传递pk或slug,则需要重写
get_object
方法并以另一种方式获取对象。网址here。正如Alex所建议的:对于默认的Django行为,必须在url模式中使用“pk”。
如果要将主键“pk”的对象标识符更改为其他名称,可以定义pk_url_kwarg。这是从Django 1.4开始提供的。
嘿,我使用的都是新的
path()
函数,下面是我的工作示例,我相信它会有帮助:视图.py:
网址.py:
模板/内容\u amp.html
还要注意,在我的
settings.py
中,在TEMPLATES
下,我有'APP_DIRS': True
。更多关于路径here。相关问题 更多 >
编程相关推荐