我遇到了问题 - 我想添加一个简单的表单字段来编辑我在模板中循环的对象。这是我的模特:
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 %}
问题是我希望有一个表单字段来编辑EACH模型而不仅仅是一个pk为1的模型...我该怎么做?
答案 0 :(得分:1)
我认为您需要objects.all()
代替get(pk=1)
。然后遍历这些对象,并将它们保存到保存到上下文的列表中。像这样:
tnames = Topic.objects.all()
lectures = []
for tname in tnames:
lectures.append(TopicForm(instance=tname))
context = {
'lectures' : lectures
}
答案 1 :(得分:0)
更具体地说,您可能希望查看模型表单集。见https://docs.djangoproject.com/en/1.6/topics/forms/modelforms/#changing-the-queryset。然后,您可以直接将查询集作为初始数据。