我是django的新手,正在尝试创建我的第一个应用程序,我想我可能需要一些帮助:)
我有一个网站上的模型表单提交,并希望显示在同一页上的数据。我很难在同一页上设置两个函数,我想我可能需要使用一个类来设置它网址.py但我没法让它工作:(代码看起来是这样的:
你知道吗表单.py地址:
from django import forms
from .models import Eintrag
class NameForm(forms.ModelForm):
class Meta:
model = Eintrag
fields = ['Anmeldung', 'Essen']
你知道吗网址.py你知道吗
from django.urls import path
from . import views
app_name = 'form'
urlpatterns = [
path('', views.get_name, name='form'),
]
你知道吗视图.py你知道吗
from django.shortcuts import render
from django.utils import timezone
from django.contrib.auth.decorators import login_required
from .forms import NameForm
from .models import Eintrag
@login_required()
def get_name(request):
# if this is a POST request we need to process the form data
if request.method == 'POST':
# create a form instance and populate it with data from the request:
form = NameForm(request.POST)
# check whether it's valid:
if form.is_valid():
eintrag = form.save(commit=False)
# process the data in form.cleaned_data as required
# ...
# redirect to a new URL:
eintrag.Name = request.user # Set the user object here
eintrag.pub_date = timezone.now() # Set the user object here
eintrag.save()
return render(request, 'form/name.html', {'form': form})
# if a GET (or any other method) we'll create a blank form
else:
form = NameForm()
return render(request, 'form/name.html', {'form': form})
def post_list(request):
posts = Eintrag.objects.all()
return render('form/post_list.html', {'posts': posts})
你知道吗名称.html你知道吗
...
{% include "form/post_list.html" %}
<form action="/form/" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit" />
</form>
...
岗位_列表.html你知道吗
{% for post in posts %}
{{ post }}
{% endfor %}
所以问题出在网址.py只处理get\u name,我不知道应该如何包括post\u列表。我不想使用不同的网址,我必须吗?你知道吗
谢谢你的帮助和建议!你知道吗
列表不需要单独的URL或视图。只需将queryset包含在
get_name
视图的上下文中。你知道吗使用[基于类的视图]会更好。
但是使用
view
,您可以通过context
发送多个数据。你知道吗您的html保持不变,但保持表单
action=''
为空相关问题 更多 >
编程相关推荐