gpt4 book ai didi

python - 如何在 Django 中使用模型表单在 commit=False 后保存字段?

转载 作者:太空宇宙 更新时间:2023-11-03 15:22:08 24 4
gpt4 key购买 nike

我有一个模型:

class Book(models.Model):
name = models.CharField(max_length=100)
alias = models.CharField(max_length=100)
description = models.TextField()


def __unicode__(self):
return self.name

和 forms.py 中的 ModelForm:

class BookForm(ModelForm):
class Meta:
model = Book

所以我想在我的观点中做出这样的事情:

def register_book(request):
if request.method == 'POST':
formul = BookForm(request.POST)
if formul.is_valid():
new_book=formul.save(commit=False)
new_book.alias='foo'
new_book.save()
return HttpResponseRedirect('/')

因此,我从 html“表单”中保存名称和描述,但在获取表单后我需要保存别名。但是不起作用。

最佳答案

ModelForm 默认包含并验证模型的所有字段。如果您总是在 View 中自己分配 alias 值,那么您不需要表单中的 alias 字段,您可以将其排除:

class BookForm(ModelForm):

class Meta:
model = Book
fields = ('name', 'description')
# NOTE: you can also use excludes, but many consider it a bad practice

一如既往,Django docs可以告诉您更多相关信息。

关于python - 如何在 Django 中使用模型表单在 commit=False 后保存字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13438009/

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