Создание представления в другом представлении django - PullRequest
0 голосов
/ 27 января 2020

Я новичок в django. Я создал базовое c приложение для сообщений, где пользователи публикуют сообщения. В проекте есть приложение posts для размещения сообщений. Приложение имеет две модели - Post и Comment, где в одном сообщении может быть много комментариев. Мои сообщения отображаются в виде списка с комментариями к конкретному сообщению.

Теперь я хочу иметь кнопку «Добавить комментарий» для каждого сообщения, чтобы я мог напрямую добавлять комментарии (дизайн обмена стека!). В противном случае это может быть реализовано отдельной моделью createview для комментариев. Я хочу, чтобы текстовое поле в списке рассылки само вводило комментарии к сообщению.

Как я могу это сделать?

1 Ответ

0 голосов
/ 27 января 2020

В самой базовой форме c вы можете определить различные маршруты для желаемых видов (CreateComment, PostDetails) и отправить запрос POST в представление CreateComment с маршрута PostDetails.

urls.py

urlpatterns = [
    path('post/<pk>/', post_details, name='post-details'),
    path('comment/new/', add_comment, name='create-comment'),
]

и в вашем маршруте post/<pk>/ настройте форму, как показано ниже:

<form method="POST" action="/comment/new/">
    <input value="" name="description" type="text" />
    <input value="/current/path/" name="redirect" type="hidden" />
    {% csrf_token %}
</form>

Вы можете затем перенаправьте пользователя на страницу, с которой он делал запрос, используя значение redirect, которое передается формой из исходного маршрута.

...