新手Django问题:用创建和更新的表单疯狂

时间:2009-03-04 17:15:41

标签: django crud

行。我只是试着在Django中创建一个表单,我可以使用它来输入有关新记录的数据或更新现有记录。

如果有这个模型,任何人都可以在我的表单,视图和网址中勾画出正确的内容吗? :

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

在另一个页面中,我想要一个表单链接,该表单允许我创建一个人的新实例或编辑现有实例。

我感到困惑的是:

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

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

我确信我已经在views.py中使用一个链接和一个函数完成了这项工作,但我似乎无法再将其完成了。什么似乎不起作用是尝试发送ID为

的网址
  /edit/id

且没有

  /edit/ 

到具有id

的默认参数的相同视图函数
 def edit(request,id=0) :
    blah

那么正确的方式是做什么的?

干杯。菲尔

1 个答案:

答案 0 :(得分: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