Django如何为ModelList设置初始对象?

5 投票
1 回答
2470 浏览
提问于 2025-04-17 11:15

我创建了一个简单的模型

class Person(models.Model):
    name = models.CharField(max_length=25)
    surname = models.CharField(max_length=25)
    birth_date = models.DateField()
    ...

还有一个简单的模型表单

class PersonForm(ModelForm):
class Meta:
    model = Person

我该如何把一个已经存在的Person对象(比如说 Person.objects.get(pk=1))作为表单的初始值呢?我需要编辑这个对象。

1 个回答

8

来自文档的内容:

# Creating a form to add an article.
>>> form = ArticleForm()

# Creating a form to change an existing article.
>>> article = Article.objects.get(pk=1)
>>> form = ArticleForm(instance=article)

所以在你的情况中,在你的 views.py 文件里:

person = Person.objects.get(pk=1)
form = PersonForm(instance=person)

https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#modelform

撰写回答