gpt4 book ai didi

python - 如何只更新 Django 模型表单中的某些字段?

转载 作者:太空狗 更新时间:2023-10-29 18:30:00 26 4
gpt4 key购买 nike

我有一个用于更新模型的模型表单。

class Turtle(models.Model):
name = models.CharField(max_length=50, blank=False)
description = models.TextField(blank=True)

class TurtleForm(forms.ModelForm):
class Meta:
model = Turtle

有时我不需要更新整个模型,而只想更新其中一个字段。因此,当我发布表单时,只有描述信息。当我这样做时,模型永远不会保存,因为它认为名称被删除了,而我的意图是名称不会更改,只是从模型中使用。

    turtle_form = TurtleForm(request.POST, instance=object)
if turtle_form.is_valid():
turtle_form.save()

有什么办法可以做到这一点吗?谢谢!

最佳答案

只使用指定的字段:

class FirstModelForm(forms.ModelForm):
class Meta:
model = TheModel
fields = ('title',)
def clean_title(self....

参见 http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#controlling-which-fields-are-used-with-fields-and-exclude

当您需要不同的功能时,在不同的 View 中为模型使用不同的 ModelForms 是很常见的。因此,为使用相同行为(比如 clean_<fieldname> 方法等)的模型创建另一种形式使用:

class SecondModelForm(FirstModelForm):
class Meta:
model = TheModel
fields = ('title', 'description')

关于python - 如何只更新 Django 模型表单中的某些字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3047700/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com