Skip to main content
 首页 » 编程设计

python之Django 表单之每个模型的表单字段

2025年05月04日8zhoujg

我遇到了一个问题 - 我想添加一个简单的表单字段来编辑我在模板中循环访问的对象。这是我的模型:

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 
}