Вопрос новичка Django :Схожу с ума от формы для создания и обновления
Вопрос
ОК.Я просто завязал себя в узел, пытаясь создать форму в Django, которую я мог бы использовать либо для ввода данных о новой записи, либо для обновления существующей.
Кто-нибудь может набросать правильные вещи, которые я должен иметь в своих формах, представлениях и URL-адресах, если у меня есть эта модель?:
class Person(models.Model) :
name = models.CharField()
age = models.IntegerField()
На другой странице мне нужна ссылка на форму, которая позволяет мне создать новый экземпляр пользователя или отредактировать существующий.
Вещи, которые меня сбивают с толку :
нужны ли мне две отдельные строки в urls.py, одна для ссылки на пустую форму без передачи идентификатора, а другая для ссылки на форму, когда я передаю идентификатор?
нужны ли мне два разных представления: одно для получения формы до сохранения экземпляра, а другое - когда экземпляр существует?
Я уверен, что видел, как это делается с помощью одной ссылки и одной функции в views.py, но, похоже, я больше не могу сделать это правильно.Что, похоже, не работает, так это попытка отправить оба URL с идентификатором
/edit/id
и без
/edit/
к той же функции просмотра с аргументом по умолчанию для id
def edit(request,id=0) :
blah
Так что же это за правильно как это сделать?
Ваше здоровье.фил
Решение
Настройте свой urls.py чтобы зафиксировать переменную id, если она включена в URL, затем проверьте наличие null в вашем 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