我遇到了一个问题 - 我想添加一个简单的表单字段来编辑我在模板中循环访问的对象。这是我的模型:
class Topic(BaseModel):
name = models.TextField()
这是我的模型表单:
class TopicForm(forms.ModelForm):
class Meta:
model = Topic
fields = ["name"]
这是我的观点:
def App(request):
tname = Topic.objects.get(pk=1)
if request.method == "POST":
form = TopicForm(data = request.POST, instance=tname)
if form.is_valid():
form.save()
我的模板很简单:
{% for lecture in lectures %}
<form action="/app/" method="POST">
{% csrf_token %}
{{ form }}
<input type="submit" value="Post">
</form>
{% endfor %}
问题是我想要一个表单字段来编辑每个模型,而不仅仅是 pk 为 1 的模型...我该怎么做?
请您参考如下方法:
我认为您需要执行 objects.all() 而不是 get(pk=1)。然后遍历这些对象,并将它们保存到您保存到上下文的列表中。像这样:
tnames = Topic.objects.all()
lectures = []
for tname in tnames:
lectures.append(TopicForm(instance=tname))
context = {
'lectures' : lectures
}
