以Django表单打开/编辑/保存记录

2024-10-01 22:26:38 发布

您现在位置:Python中文网/ 问答频道 /正文

目前我有一个Django表单,可以在其中向数据库添加新客户。我还有一个表,显示了这个数据库中当前的所有客户。现在,我想在customer表中单击一个客户名称,打开现有客户,并可以选择编辑记录并保存。在

下面是我目前的代码部分,如果需要更多请询问。在

我的导航栏.html在

<li><a href='{% url "customeradd" %}'>New Customer</a></li>

我的网址.py在

^{pr2}$

我的视图.py在

def customeradd(request): 
    form = CustomerAddForm(request.POST or None)

    if request.method == 'POST': 
        if form.is_valid():
            save_it = form.save(commit=False)
            save_it.save()
            messages.success(request, 'Customer added succesfully')
            return HttpResponseRedirect('/customeroverview/')
        else:
            messages.error(request, 'Customer save error, please check fields below')
    else:
        form = CustomerAddForm()


    return render_to_response("customer-add.html",
                              {"customer_add_form": form},
                              context_instance=RequestContext(request))

在客户概览.html其中显示所有客户的表(仅显示三个字段)

<td><a href='{% url "customeradd" %}'>{{ customer.customer_name }}</a></td>
<td>{{ customer.customer_type }}</td>
<td>{{ customer.customer_address }}</td>

所以现在我可以在customer表中单击customer名称,CustomerAddForm将打开。当然,在目前的情况下,没有任何论据。在

  1. 我怎么通过客户.id当单击客户名称中的超链接customeroverview.html?

  2. 我怎么才能抓住这个客户.id在视图中-应该怎么做网址.py看起来像?

  3. 当使用现有的客户.id,如何保存当前记录而不是创建新记录客户.id

任何关于这种情况的帮助/建议都将有助于我理解Django GET/POST。在


Tags: pyform名称id客户requestsavehtml
2条回答

基本上,您所说的是CRUD(创建、读取、更新和删除)。 如果您正在编写一个简单的webappgui(在我看来是这样),可以找到一个简单的示例here来说明如何用Django实现CRUD。在

但是,如果您正在编写restapi,事情会变得更复杂一些。Django REST Framework可能会有帮助。在

也许你应该:

在网址.py在

url(r'^customeradd/(?P<id>\w+)$', 'customer.views.customeradd', name='customeredit'),
url(r'^customeradd/$', 'customer.views.customeradd', name='customeradd'),

在你的视图.py公司名称:

^{pr2}$

在模板中

^{3}$

相关问题 更多 >

    热门问题