繁体   English   中英

Django-我的案子应该使用什么CBV?

[英]Django - What CBV should I use for my case?

首先,我想说我真的是Django的新手,正在为我的项目寻找一些架构建议。

我有一个看起来像这样的前端模板: 在此处输入图片说明

用户单击“保存”按钮时,需要将输入字段中的数据保存到数据库中。 用户将不断用新值更新这些输入字段,并且在某些情况下,数据库中将不存在这些数据,因为用户尚未填写它们。 问题是,我不确定要使用哪种查看方法。

views.py

class BhaCreateView(CreateView):
    model = models.bha
    fields = '__all__'
    context_object_name = 'bha'
    template_name = 'base/bha.html'

这只是我编写的一个非常粗糙的代码,只在这里提出一个问题。 我知道有许多种基于类的视图,例如DetailView,ListView,CreateView,UpdateView ...等。 我应该使用哪一个或哪些目的? 我在想我需要将CreateView和UpdateView结合起来,因为用户会将新信息更新到BHA部分,但是仍然有可能根本没有插入信息。

我应该怎么做?

通常,您应该同时具有CreateViewUpdateView

因此,如果用户最初希望通过单击Add new BHA链接来创建BHA,则应将其定向到将由CreateView处理的URL yourDomain.com/bha/create 当他保存时,应将其UpdateView到另一个URL yourDomain.com/bha/1/edit ,它将由UpdateView处理,其中URL中的1是新创建的数据库条目的主键。 只能通过该URL对该实例进行更新。

两个视图通常可以使用大约相同的模板,但是UpdateView最初将使用URL中ID标识的模型实例中的数据填充表单。

因此,您的url配置可能如下所示:

urlpatterns = [
    url(r'^bha/', include([
        url(r'^create/$', BHACreateView.as_view(), name='create'),
        url(r'^(?P<pk>\d+)/edit/$', BHAUpdateView.as_view(), name='update'),
    ], namespace='bha')),

    # other urls ...
]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM