1

好的。我只是把自己绑在一个结上,试图在 Django 中制作一个表格,我可以用它来输入有关新记录的数据或更新现有记录。

如果有这个模型,任何人都可以在我的表单、视图和 URL 中勾勒出我应该拥有的正确内容吗?:

class Person(models.Model) :
  name = models.CharField()
  age = models.IntegerField()

在另一个页面中,我想要一个指向表单的链接,它可以让我创建一个人的新实例或编辑一个现有的实例。

我感到困惑的事情:

  • 我是否需要 urls.py 上的两条不同的行,一条链接到空白表单,不传递 id,另一条在我传递 id 时链接到表单?

  • 我是否需要两种不同的视图,一种在保存实例之前接收表单,另一种在实例存在时接收?

我确定我已经在views.py 中使用一个链接和一个函数完成了此操作,但我似乎无法再正确处理它了。似乎不起作用的是尝试发送带有 id 的 url

  /edit/id

并且没有

  /edit/ 

到具有 id 的默认参数的相同视图函数

 def edit(request,id=0) :
    blah

那么这样做的正确方法是什么?

干杯。菲尔

4

1 回答 1

3

设置您的 urls.py 以捕获 id 变量(如果包含在 url 中),然后在您的 views.py 中检查 null

您的 urls.py 可能如下所示:

(r'^edit/(?P<person_id>\w+)/$', 'mysite.myapp.views.edit_person'),

然后,在您的 views.py 中:

def edit_person(person_id=None):
    if(person_id): #show populated form
    else: # show empty form
于 2009-03-04T18:28:06.440 回答