Попытка включить форму в шаблон другого приложения с помощью {% include%}, но получаю «TemplateDoesNotExist» - PullRequest
0 голосов
/ 14 мая 2018

В настоящее время я могу оставить комментарий к сообщению, но мне нужно перейти на отдельную страницу создания комментариев.Я хочу включить форму комментария прямо под сообщением на странице сведений о группе.Я пытался использовать {% include%}, но, похоже, не могу найти форму.Это вероятно, потому что я пытаюсь отобразить форму в шаблоне приложения, отличном от того, где находятся form.py и comment_form.html (я создаю форму и шаблон для формы в приложении "комментарии", и я пытаюсьчтобы включить форму в приложение «группы» на странице сведений. Вот соответствующие файлы.

comments / forms.py

from django import forms

from .models import Comment

class CommentForm(forms.ModelForm):

    class Meta:
        model = Comment
        fields = ('body',)

comments / comment_form.html

<h2>this is the comment form</h2>
<form class="post-form" method="post">
  {% csrf_token %}
  {{ form.as_p }}
  <button type="submit" class="save btn btn-default">Save</button>
</form>

groups / views.detail:

def detail(request, group_id):
    group = get_object_or_404(Group, pk= group_id)
    posts = Post.objects.filter(group__id = group_id)
    form = CommentForm()

    return render(request, 'groups/detail.html', {'group': group, 'posts':posts, 'form':form})

groups / detail.html:

{% include form %}

это URL, который заботится о создании комментария (comments /urls.py):

from . import views
from django.urls import path

app_name = 'comments'

urlpatterns = [
    path('<int:post_id>/create/', views.create, name='create'),
    path('delete/<int:group_id>/<int:post_id>/<int:comment_id>', views.delete, name='delete'),
]

снова, он не может найти шаблон, вероятно, потому что мне нужно, чтобы приложение 'groups' узнало о существовании 'comment_form.html'. Как мне выполнитьэто?

1 Ответ

0 голосов
/ 14 мая 2018

Если вы хотите включить comments/comment_form.html, вы должны сделать:

{% include 'comments/comment_form.html' %}

В настоящее время у вас есть {% include form %}, который будет использовать переменную form - что не имеет смысла, так как form это экземпляр формы CommentForm(), это не имя шаблона.

...