Проблема Django - попытка получить доступ к данным, введенным в форму, и передать их через другую страницу - PullRequest
0 голосов
/ 15 апреля 2010

ОК, позвольте мне сначала дать вам обзор. У меня есть этот сайт и в нем есть раздел формы. При доступе к этому разделу вы можете просмотреть или начать новый проект. Каждый проект имеет 3-5 разных форм.

Моя проблема в том, что я не хочу, чтобы зрители проходили все 3-5 страниц, чтобы увидеть нужную им информацию. Вместо этого я хочу предоставить каждому проекту главную страницу, где все необходимые данные, введенные в формы, отображаются в виде нередактируемых данных. Я надеюсь, что это имеет смысл.

Поэтому мне нужно найти способ получить доступ ко всем этим данным из разных форм для каждого проекта и передать эти данные на новую страницу, которую я буду называть «Главная». Каждый проект будет иметь отдельную главную страницу для себя.

Я не знаю, как мне это сделать, поэтому любая помощь будет признательна.

Спасибо

Ответы [ 2 ]

0 голосов
/ 16 апреля 2010

Данные могут быть переданы из представления в шаблон через контекст .

Допустим, вы создали сводный вид ...

def summary(request, *args, **kwargs):

В этом представлении вы можете запросить базу данных с помощью API модели и передать результат этого запроса в шаблон для рендеринга. Я не уверен, как выглядят ваши модели, но скажу, что у вас была модель с названием и владельцем (в качестве ForeignKey для пользователя) ...

class Project(models.Model):
    title = models.CharField(max_length=250)
    user = models.ForeignKey(User)

Ваша модель, очевидно, будет другой. По вашему мнению, вы можете запросить все модели, которые принадлежат текущему пользователю ...

def summary(request, *args, **kwargs):
    projects = Project.objects.filter(user=request.user)

Как только вы соберете это, вы можете передать запрос в систему рендеринга шаблонов ...

def summary(request, *args, **kwargs):
    projects = Project.objects.filter(user=request.user)
    render_to_response('project_summary.html', {'projects': projects }, ... )

Когда вы передаете запрос в шаблон, вы называете его projects. Из шаблона вы можете получить к нему доступ по этому имени ...

<body>
    <table>
    {% for project in projects %}
        <tr><td>{{ project.title }}</td></tr>
    {% endfor %}
    </table>
</body>

(Обратите внимание, как вы также можете получить доступ к свойству модели из шаблона.)

0 голосов
/ 16 апреля 2010

Вы можете попробовать это . После этого вы можете:

Если вы уже видели все это, тогда:

Во-первых, вы должны создать представление для своей главной страницы. Так что если у вас есть приложение my_app, my_app/views.py должно выглядеть так:

def main_page_view(request, project_name):
    # Your code here
    pass

Затем, чтобы использовать это, вы должны изменить urls.py и добавить что-то вроде:

(r'^projects/(?:<project_name>[a-zA-Z0-9]+)', 'my_app.views.main_page_view'),

Кроме того, вам понадобятся модели, созданные в models.py, с помощью подкласса django.models.Model

РЕДАКТИРОВАТЬ: перечитать ваш вопрос, я думаю, вам нужно это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...