私はDjangoのウェブサイトを作っています。私のホームページに私の最近のブログ投稿のリストを表示したいと思います。ブログと連絡フォームは別々にうまくいきます。しかし、私は同じページに(明らかに同じURLに)それらを含めるしたいと思います。Django - 同じURLに2つのビューを持っています
views.pyは以下のとおりです。
from .forms import NameForm
def get_name(request):
if request.method == 'POST':
form = NameForm(request.POST)
if form.is_valid():
return HttpResponseRedirect('/thanks/')
else:
form = NameForm()
return render(request, 'personal/index.html', {'form': form})
あなたがforms.py見たい場合:
from django import forms
class NameForm(forms.Form):
your_name = forms.CharField(label='Your name', max_length=100)
私のホームページのurls.pyでURLPATTERNは次のとおりです。
urlpatterns = [
url(r'^$', ListView.as_view(
queryset=Post.objects.all().order_by("-date")[:2],
template_name="personal/index.html")),
url(r'^$', views.get_name, name='contact'),
]
このurlpatterでは、ブログ投稿のリストが完全に表示されますが、連絡先フォームは表示されません。しかし、以下のurlpatternの連絡フォームが表示されますが、ブログの投稿は表示されません。
urlpatterns = [
url(r'^$', views.get_name, name='contact'),
url(r'^$', ListView.as_view(
queryset=Post.objects.all().order_by("-date")[:2],
template_name="personal/index.html")),
]
この両方のコンテンツを同じページに表示する必要があります。私を助けてください。それ以上の情報が必要な場合は教えてください。
今回は連絡フォームが登場しましたが、ブログ投稿は表示されませんでした....私は、それがviews.pyのurls.pyのlistview(とstuffs)に相当するコードが間違っていると思います...助けてください – Ishan
私が元々持っていた 'posts'の代わりに' post_list'を使うとうまくいくと思います。あなたはテンプレートを表示していないので、テンプレートの変数名がわからない。 – Alasdair