Найти - Пользователи
Полная версия: Помогите разобраться с формами.
Начало » Django » Помогите разобраться с формами.
1
dissdoc
Хочу сделать элементарную форму. Читаю доки. Все вроде понятно. Но основы (для совсем пока еще глупых как я) не понимаю.
Давайте сразу на примере. Есть модель (в файле models.py)
class Message(model.Models):
descr = models.TextField()
По докам создаю форму допустим
class MessageForm(forms.Form):
descr = forms.TextField()
Формы наследую по докам как newforms.
Теперь главный вопрос - куда собственно этот код формы писать? В какой файл? :)
expee
Так в доках же все есть http://docs.djangoproject.com/en/dev/topics/forms/#using-a-form-in-a-view
sairus
Я обычно пишу в forms.py, который лежит в корне приложения. Потому во views.py импортирую форму

from app.forms import MessageForm

и использую по назначению.
Иногда требуется динамическое создание форм и я делаю это прямо во views.py.
dissdoc
expee, да именно это и читаю) И не врублюсь откуда они форму-то берут)))))))
sairus, ясно. Спасибо. Пошел пробовать
Вообщем не зависит конкретно где я буду хранить это мне нравится.
expee
dissdoc
expee, да именно это и читаю) И не врублюсь откуда они форму-то берут)))))))
От туда, где ты их создаешь. Например, в приложении будет файл forms.py, где ты объявил. Дальше импортируешь ее оттуда и делаешь все, как в доках.

ps. с сотым сообщением меня :)
dissdoc
А у меня такой вопрос появился еще. Смотрите.
Вообщем создал я форму. Во views.py создал функцию def descr(request) . Теперь появился вопрос.
Я не хочу для этой функции новый шаблон делать. Я хочу форму встроить в тот же шаблон, в котором уже есть одна функция. Как мне быть в этом случае? Т.е. как мне добавить еще одну функцию и куда? (В urls.py через запятую не получается)
expee
Не понял, что ты хочешь. Вырази мысль конкретно.
Ferroman
dissdoc
Есть шаблон, в котором идет отображение сообщений. Ну банальное что-то test.html
{% for mess in messes %}
{{ mess.message }}
{% endfor %}
Для него есть функция во views.py
def messhow(request):
messes = Messes.objects.all()
t = loader.get_template("test.html")
c = Context({'messes': messes})
return HttpResponse(t.render(c))
Ну и в urls.py
url(r'^$', messhow)
Так вот. Сделал я форму. Шаблон изменил вот так допустим
{% for mess in messes %}
{{ mess.message }}
{% endfor %}

<form action="" method="post">
{{ form_mess.as_p }}
<input type="submit" value="Submit" />
</form>
А во views.py добавил функцию
def messform(request):
#some code...
Так вот вопрос, как мне подвязать функцию работы с формой к моему шаблону, к которому уже подвязана функция через urls.py?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB