Я немного новичок в создании веб-фрейма с использованием Pyramid
и до сих пор делал довольно хорошо. В настоящее время я борюсь с тем, что кажется простой задачей. У меня есть форма, которая позволяет пользователям вводить информацию и рейтинги (через POST
), чтобы эта информация могла заполнять базу данных, которую я создал, используя SQLALCHEMY
.Как получить route_url со страницы для реализации в форме
Форма составлена из таблиц 4 db
(например, информация о пользователях, категориях и элементах, а также текстовое поле с обратной связью). Я построил view_config
для этой формы HTML
, используя комбинацию request.params['something_to_check']
и CRUD
API
(который дополняет проект RESTful
).
Проблема: 1. Я пытаюсь получить идентификатор с страницы оценки, на которой существуют формы, и связать ее с формой (возможно, как скрытое поле, поэтому я могу использовать request.params
и использовать свой API (как как показано ниже).
Я прочитал здесь post на стеках аналогичного экземпляра, но эта функция является единственной функцией, выполняющей все формы, а не функцию, предназначенную для сопоставления идентификатора. В Pyramid есть хорошие документы grabbing resources, но я не уверен, что это то, что я ищу в этом экземпляре. Как мне реализовать что-то подобное в моем коде/форме? Также, я не с использованием фляжки - я использую JINJA2 templa тес.
Маршруты для вида (маршрутные объекты, оценка, нет в списке):
config.add_route('save_assessment_result', '/save_assessment_result')
config.add_route('create_assessment_form', '/create_assessment_form')
views.py
@view_config(route_name='save_assessment_result', renderer='templates/assessment_form.jinja2')
def form(request):
with transaction.manager:
username = request.params['username']
firstname = request.params['firstname']
lastname = request.params['lastname']
email = request.params['email']
owner = api.create_user(username, firstname, lastname, email)
assessment_id = int(request.params['id'])
assessment_obj = api.retrieve_assessment(assessment_id)
assessment_results = api.create_assessment_results(owner, assessment_obj)
category_rating_int = int(request.params['category_rating_int'])
category = request.params['category_name']
category_rating = api.create_category_rating(category_rating_int, category, assessment_results)
element_rating_int = int(request.params['element_rating_int'])
element = request.params['element_text']
element_rating = api.create_element_rating(element_rating_int, element, assessment_results)
text = request.params['text']
comment = api.create_comment(text, element, assessment_results)
transaction.commit()
return {}
форма дзиндзя шаблон
<form method='POST' action='/save_assessment_result' autocomplete="on">
<div class="form-group">
<input type="hidden" name="assessment_id" value='{{assessment_id}}'/> #suppose to find assessment page id
<dl class='user_form'>
<dt><label for = 'username'> Username </label></dt>
<dd>{{ forms.input('username') }}</dd>
<dt><label for = 'firstname'> Firstname </label></dt>
<dd>{{ forms.input('firstname') }}</dd>
<dt><label for = 'lastname'> Lastname </label></dt>
<dd>{{ forms.input('lastname') }}</dd>
<dt><label for = 'email'> Email </label></dt>
<dd>{{ forms.input('email') }}</dd>
<dd><input type="submit" name="submit" value="Submit" /></dd>
# MODE CODE for adding ratings...
</dl>
Можете ли вы это немного разъяснить? Что тебе нужно? Предложение очень длинное, и я попытался его разобрать, но не смог :(Проблема: 1. Мне нужно запросить route_uri с страницы идентификатора страницы оценки, которую пользователь вводит в свою информацию/рейтинги, чтобы я мог легко подключить это к API для объединения как пользовательских результатов, так и страницы оценки в сущность, это называется оценочными_выходами, которые используют пользователя и оценку, например api.create_assessment_results (владелец, оценка). –
@MikkoOhtamaa Я немного очистил его для уточнения. – thesayhey