首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Django,我如何在表单保存方法中引用现有模型,而不是创建新实例?

在Django中,如果你想在表单保存方法中引用现有模型而不是创建新实例,你可以使用以下步骤:

  1. 首先,确保你已经定义了你要引用的模型。假设你要引用的模型名为YourModel
  2. 在你的表单类中,导入你要引用的模型:
代码语言:txt
复制
from .models import YourModel
  1. 在表单类中,定义一个字段来引用该模型。你可以使用ModelChoiceField来实现这一点:
代码语言:txt
复制
class YourForm(forms.Form):
    your_model = forms.ModelChoiceField(queryset=YourModel.objects.all())

这将在表单中创建一个下拉列表,其中包含YourModel的所有实例。

  1. 在表单的保存方法中,你可以通过访问cleaned_data属性来获取用户选择的模型实例:
代码语言:txt
复制
def save(self):
    selected_model = self.cleaned_data['your_model']
    # 在这里可以使用selected_model进行进一步的操作

这样,你就可以在表单保存方法中引用现有模型而不是创建新实例了。

关于Django的更多信息和使用方法,你可以参考腾讯云的Django产品文档:Django产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

django 字段类型_access的数据库类型是

大家好,又见面了,是你们的朋友全栈君。 字段类型 字段类型指使用Django ORM创建数据库时支持的数据字段类型。...(14) FloatField 代表在python由float实例表示的浮点数。 (15) ImageField 继承FileField所有的方法,但还验证上传的对象为有效的图像。...在数据库创建的为varchar列,默认最大长度为100字符。 ImageField.height_field:每次保存模型实例时,模型字段的名称都会自动填充图像的高度。...ImageField.width_field:每次保存模型实例时,模型字段的名称都会自动填充图像的宽度。 (16) IntegerField 一个整数。...如果需要在尚未定义的模型创建关系,则可以使用模型的名称,不是模型对象本身。

3.9K30

37.Django1.11.6文档

Django 提供F表达式 来允许这样的比较。 F() 返回的实例用作查询内部对模型字段的引用。 这些引用可以用于查询的filter 来比较相同模型实例上不同字段之间值的比较。...基于类的视图的核心是允许你用不同的实例方法来响应不同的HTTP 请求方法不是在一个视图函数中使用条件分支代码来实现。...方法 class models.Userget_username() 返回这个User 的username。 由于可以将User模型交换出来,您应该使用方法不是直接引用用户名属性。...如果save_as是True,“保存并添加另一个”将被替换为创建对象(使用ID)不是更新的“另存为”按钮现有的对象。 默认情况下,save_as 设置为False。...你只需创建AdminSite 子类的实例(方式与你会实例化任何其它Python 类相同) 并注册你的模型和ModelAdmin 子类与它不是默认的站点。

24.3K80

Django】在大型项目中的django的性能模型字段primary_key

默认表单部分将是包含这些选项的选择框,不是标准文本字段。 每个元组的第一个元素是要在模型上设置的实际值,第二个元素是人类可读的名称。...,然后引用它,但在模型定义选择和每个选择的名称可以在使用它的类中保留所有这些信息,并帮助引用这些选择(例如,Student.SOPHOMORE将在导入学生模型的任何位置工作)。...,Django将添加一个方法来检索字段当前值的可读名称。...如果没有为模型的任何字段指定主键_Key=True,Django将自动添加一个字段来保存主键,因此不需要在任何字段上设置主键_Key=True,除非想覆盖默认主键行为。...如果更改现有对象的主键值并保存它,则会在旧对象旁边创建一个对象。

2K20

众多Python Web框架比较,哪个适合你,你就用哪个!

在这里,我们给这样的框架更高的分数:这些框架展示了如何在教程创建整个应用程序,包括常见的配方或设计模式,以及超出职责范围(例如提供有关如何运行的详细信息) Python变体(PyPy或IronPython...它需要时间来解释CubicWeb的不寻常方法,演示如何构建一些基本应用程序,包括API引用,并且通常不会特定的方式。 Django ?...自Django首次出现以来已经有十年,它已经成为Python最广泛部署的用于创建Web应用程序的框架之一。 Django配备了你可能需要的大部分组件,因此它倾向于构建大型应用程序不是小型应用程序。...这些系统使用Python类来定义模型,在Web2py使用构造函数(define_table)来实例模型。...在Python 3.51使用easy_install时遇到了问题,但它在Python 2.7运行良好。

4.5K20

关于“Python”的核心知识点整理大全55

我们不想让用户与管理网站交互,因此 们将使用Django表单创建工具来创建让用户能够输入数据的页面。 19.1.1 添加新主题 首先来让用户能够添加新主题。...用于添加主题的表单 让用户输入并提交信息的页面都是表单,那怕它看起来不像表单。用户输入信息时,我们需 要进行验证,确认提供的信息是正确的数据类型,且不是恶意的信息,中断服务器的代码。...在Django创建表单的最简单方式是使用ModelForm,它根据我们在第18章定义的模型 的信息自动创建表单。...最简单的ModelForm版本只包含一个内嵌的Meta类,它告诉Django根据哪个模型创建表单,以 及在表单包含哪些字段。...由于实例化TopicForm时我们没有指定任何实参,Django创建一个可供用户 填写的空表单。 如果请求方法为POST,将执行else代码块,对提交的表单数据进行处理。

14610

00x: Django models.Model详解

null是纯粹和数据库相关的,’blank’则是和验证相关的。若一个字段的blank=True,表单的验证将会允许实例带一个空值。反之则不行。...若这个给定,默认的表单插件将会变成一个单选框不是简单的文本字段,并且单选框的选项数目由给定的choices来限定。...如果你改变了现有对象的主键的值然后保存了这个对象,一个的对象就会和旧的对象并行创建。啥意思呢?...SQL的一些保留字`join,where,select则是可以在model的字段名称中使用的,因为Django在每次SQL查询避免了可能发生的冲突。...CommonInfo模型不能被用作是一个正常的Django模型,因为他是一个抽象基类,它不会生成数据库表或者有manager,不能被直接实例化或者保存

1.7K20

​第 07 篇:创作后台开启,请开始你的表演!

它所言,我们确实还没有发布任何文章,本节我们将使用 django 自带的 admin 后台来发布我们的博客文章。...在支持 Markdown 语法部分中将介绍如何在文章插入图片的方法。...例如文章发布时间 created_time 和修改时间 modified_time,应该在创建或者修改文章时自动生成,不是手动控制。...因为 timezone 模块的函数会自动帮我们处理时区,所以我们使用的是 django 为我们提供的 timezone 模块,不是 Python 提供的 datetime 模块来处理时间。...所以这里问题的关键是每次保存模型时,都应该修改 modified_time 的值。每一个 Model 都有一个 save 方法,这个方法包含了将 model 数据保存到数据库的逻辑。

1.1K20

Django 3.1 官网学习路线

Django 编写的每个应用程序都由一个遵循特定约定的 Python 包组成。Django 附带一个工具,它可以自动生成应用程序的基本目录结构,因此您可以专注于编写代码,不是创建目录。...它包含这个 Django 实例激活的所有 Django 应用程序的名称。应用程序可以在多个项目中使用,您可以将它们打包并分发给他们项目中的其他人使用。...迁移功能非常强大,它允许您在开发项目时随着时间的推移更改模型不需要删除数据库或表并创建表——它专门用于实时升级数据库,不会丢失数据。...不同的模型字段类型(DateTimeField、CharField)对应于适当的 HTML 输入小部件。每种类型的字段都知道如何在 Django 管理显示自己。...页面的底部提供了几个选项: 保存-保存更改并返回此类型对象的更改列表页。 保存并继续编辑——保存更改并重新加载此对象的管理页面。 保存并添加另一个——保存更改并为这种类型的对象加载一个的空白表单

8.2K10

七日Python之路--第十二天(Django Web 开发指南)

地址:http://www.jb51.net/books/76079.html ---- (一)第一部分 入门 (1)内置数字工厂函数 int(12.34)会创建一个的值为...其他语言一般使用new来创建实例,Python使用的是‘初始化程序’initializer 不是‘构造函数’constructor 即'__init__'函数 Python...[0]或kwargs['object_id'] 不需要再记住 URLconf的名称了 ##当然在 Django1.6,完全可以不用在URLconf中使用 ?...}} (19)表单 Django提供了forms库把框架里的三个主要组件联系在一起:模型定义的数据库字段,模板里显示的HTML表单标签,还有检验用户输入和显示错误信息的能力。...(20)保存 ModelForm 有一个save()方法,可以将信息保存为数据库里的一条记录,然后返回Model对象结果。

1.8K20

django 1.8 官方文档翻译: 1-2-2 编写你的第一个Django应用,第2部分

网站管理员使用这个系统来添加新闻、事件、体育成绩等等, 而这些内容会在公共网站上显示出来。Django 解决了为网站管理员创建统一 的管理界面用以编辑内容的问题。 管理界面不是让网站访问者使用的。...poll 是我们在第一个教程创建的: 点击这个”What’s up?” 的 poll 进行编辑: 这有些注意事项: 这的表单是根据 Poll 模型自动生成的。...Save and add another – 保存更改并载入当前对象类型的的空白表单。 Delete – 显示删除确认页。...这样的话你就需要在注册对象 时告诉 Django 对应的配置。 让我们来看看如何在编辑表单上给字段重新排序。...这个变量包含了每一个 已安装的 Django 应用。你可以通过你认为最好的方法硬编码链接到特定对象的管理页面,不是使用默认模板。

2.5K40

djangoModelForm多表单组合的解决方案

所以,基本表单的功能看BaseForm已经足够了。 2、从模型创建表单 django对于MVC的C与M间的映射是非常体贴的,集中体现Model模型(比如模型的权限与用户认证)。...那么,一个模型代表着RDS的一张表,模型实例代表着关系数据库的一行,form如何与一行相对应呢?...告诉django需要在表单创建哪些字段。...比如CreateView就会由django自动的把页面上POST出的form数据解析到model生成的表单(或者form_calss指定的ModelForm类型表单),同时调用表单的save方法将数据添加到模型对应的数据库表...例如,我们希望录入合同,其中合同Model还有地址Model和项目Model,项目Model又有地址Model,等等。 当然,我们有很多种实现的方案,但是,前面三部分说了那么多,不是浪费口水的。

3.4K20

django 1.8 官方文档翻译: 2-3-1 模型实例参考

创建对象 要创建模型的一个实例,只需要像其它Python 类一样实例化它: class Model(**kwargs) 关键字参数就是在你的模型定义的字段的名字。...无论如何,如果你这么做了,小心不要改变了调用签名——任何改变都可能阻碍模型实例保存。尝试使用下面这些方法之一,不是重写init: 1....除了创建模型之前,from_db() 必须设置实例_state 属性的adding 和 db 标志位。...如果你手工赋值一个自增主键的值,请确保不要使用一个已经存在的主键值!如果你使用数据库已经存在的主键值创建一个的对象,Django 将假设你正在修改这个已存在的记录不是创建一个的记录。...强制使用INSERT 或UPDATE 在一些很少见的场景,需要强制save() 方法执行SQL 的 INSERT 不能执行UPDATE。或者相反:更新一行不是插入一个行。

1.9K10

django 1.8 官方文档翻译:2-1-1 模型语法

如果设置了choices ,默认的表单将是一个选择框不是标准的文本框,而且这个选择框的选项就是choices 的选项。...如果可调用 ,每有对象被创建它都会被调用。 help_text 表单部件额外显示的帮助内容。即使字段不在表单使用,它对生成文档也很有用。...Django 未来将一直会扩展内建模型方法的功能并添加的参数。如果在你的方法定义中使用*args, **kwargs,将保证你的代码自动支持这些的参数。...你可以创建,删除,更新代理 model 的实例,而且所有的数据都可以象使用原始 model 一样被保存。...,不是替换现有的默认管理器,你可以使用自定义管理器管理器文档描述的技巧:创建一个含有的管理器的基类,并且在主基类之后继承它: # Create an abstract class for the

4.9K20

django 1.8 官方文档翻译:13-1-2 使用Django认证系统

Django的认证框架只存在一种类型的用户,因此诸如'superusers'或管理员'staff'用户只是具有特殊属性集的user对象,不是不同类型的user对象。...之后,每当你运行manage.py migrate时,它都将为模型创建默认的权限。...login()使用Django的会话框架保存用户的ID在会话。 注意任何在匿名会话设置的数据都会在用户登入后的会话中都会记住。...注意 虽然get_session_auth_hash()给予SECRET_KEY,使用的私钥升级你的站点会使所有现有会话失效。...可以像其它任何Django模型一样创建和删除用户。可以创建组,并分配权限给用户和组。admin还会保存和显示对用户模型编辑的日志。

4.6K20

Django 优秀资源大全项目资源非 Python 包工具贡献

表单 API 和功能与 Django 的完全相同,主要的不同在同它的表单项和表单组件是在模板呈现的,不是使用字符串处理完成,因此它能让你在使用 Django 模板完成控制输出的结果。...django-geoposition, star:261 - 一个数据模型项,可用来保存地理信息(经度/纬度),并提供相应的后台管理/表单组件。...存储 扩展了现有存储后端的功能或提供存储后端的相关包。 django-dynamic-preferences, star:75 - 为你的 Django 项目实现动态、全局的实例设置。...mixer, star:395 - 一个用来产生 Django 或 SQLAlchemy 数据模型实例的应用。能快速便捷地创建测试数据。...django-modeltranslation, star:483 - 将现有 Django 数据模型的动态数据翻译成任何的语言,而无需修改原来的数据模型类。

14.2K90
领券