gpt4 book ai didi

django - Django ModelForm 和 models.Model 有什么区别?

转载 作者:行者123 更新时间:2023-12-02 20:31:24 25 4
gpt4 key购买 nike

我正在学习 Django,但无法理解 ModelForm 和 models.Model,有人可以解释它们之间的区别吗?谢谢!

最佳答案

改编自django docs

ModelForm 是一个表单,它紧密映射到特定模型中定义的字段。模型是通过子类化 models.Model 来定义的。

模型是有关数据的信息源。它包含您所存储的数据的基本字段和行为。通常,每个模型映射到单个数据库表。当您开发 Web 应用程序时,您很可能会拥有与 Django 模型紧密映射的表单。因此,Django 提供了一个帮助程序类,可让您从 Django 模型创建 Form 类。这个辅助类是 ModelForm

您创建的 ModelForm 将在模板中呈现,以便用户可以创建或更新存储在您的 Model 定义的数据库表中的实际数据。

例如,假设您想在 Web 应用程序中存储有关文章的数据,您首先需要定义一个名为 Article 的模型,如下所示:

在你的 models.py 中:

from django.db import models

class Article(models.Model):
title = models.CharField(max_length=30)
body = models.TextField(max_length=300)

在 forms.py 中,您将创建一个 modelForm 来与您刚刚创建的文章 model 相对应。

from .models import Article
from django.forms import ModelForm

class ArticleForm(ModelForm):
class Meta:
model = Article
fields = ['title', 'body']

然后在你的views.py中你可以渲染你的文章表单:

from django.shortcuts import render
from django.http import HttpResponseRedirect

from .forms import ArticleForm

def article_form_view(request):
# if this is a POST request we need to process the form data
if request.method == 'POST':
# create a form instance and populate it with data from the request:
form = ArticleForm(request.POST)
# check whether it's valid:
if form.is_valid():
# process the data in form.cleaned_data as required
# ...
# redirect to a new URL:
return HttpResponseRedirect('/')

# if a GET (or any other method) we'll create a blank form
else:
form = ArticleForm()

return render(request, 'article_form.html', {'form': form})

关于django - Django ModelForm 和 models.Model 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48634287/

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