2009-03-04 8 views
1

OK. Я просто привязал себя к узлу, пытаясь создать форму в Django, которую я могу использовать для ввода данных о новой записи или обновления существующей.Newbie Django Вопрос: Сходит с ума от формы для создания и обновления

Может ли кто-нибудь набросать правильные вещи, которые я должен иметь в своих формах, представлениях и URL-адресах, если у вас есть эта модель? :

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

На другой странице мне нужна ссылка на форму, которая позволяет мне создать новый экземпляр человека или изменить существующий.

Вещи я путаюсь по:

  • мне нужны две отдельные линии на urls.py, один для ссылки на пустую форму, НЕ передавая идентификатор и один для связи с формой когда я передаю идентификатор?

  • Мне нужны два разных вида, один для получения формы до того, как экземпляр был сохранен, и один, когда экземпляр существует?

Я уверен, что я видел это сделано с одной линии и одной функции в views.py, но я, кажется, не быть в состоянии получить это право больше. Что, кажется, не на работу пытается отправить как URL с идентификатором

/edit/id 

и без

/edit/ 

к одной и той же функции представления с аргументом по умолчанию для идентификатора

def edit(request,id=0) : 
    blah 

Так что же право Способ для этого?

Cheers. фил

ответ

3

Настройка urls.py захватить идентификатор переменной, если включен в URL, а затем проверить нуль в вашем views.py

Ваш 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 
+0

спасибо, что звучит как то, что я искал – interstar