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

如何将选择框的值作为外键传递(Django)

在Django中,可以通过使用外键字段来将选择框的值作为外键传递。以下是实现这一功能的步骤:

  1. 首先,在数据库模型中定义两个相关的模型,一个是包含选择框的模型,另一个是包含外键的模型。例如,我们有一个模型叫做Choice,其中包含一个选择框字段choice_value,还有一个模型叫做ForeignKeyModel,其中包含一个外键字段foreign_key
代码语言:txt
复制
from django.db import models

class Choice(models.Model):
    choice_value = models.CharField(max_length=100)

class ForeignKeyModel(models.Model):
    foreign_key = models.ForeignKey(Choice, on_delete=models.CASCADE)
  1. 接下来,在视图函数中处理表单提交的数据。首先,获取选择框的值,然后创建一个新的ForeignKeyModel对象,并将选择框的值作为外键赋值给foreign_key字段。
代码语言:txt
复制
from django.shortcuts import render
from .models import Choice, ForeignKeyModel

def my_view(request):
    if request.method == 'POST':
        choice_value = request.POST.get('choice_value')
        choice = Choice.objects.get(choice_value=choice_value)
        foreign_key_model = ForeignKeyModel.objects.create(foreign_key=choice)
        # 其他处理逻辑...
    else:
        # 渲染包含选择框的表单页面
        choices = Choice.objects.all()
        return render(request, 'my_template.html', {'choices': choices})
  1. 最后,在模板中渲染选择框,并将选择框的值作为外键传递给视图函数。
代码语言:txt
复制
<form method="post" action="{% url 'my_view' %}">
  {% csrf_token %}
  <select name="choice_value">
    {% for choice in choices %}
      <option value="{{ choice.choice_value }}">{{ choice.choice_value }}</option>
    {% endfor %}
  </select>
  <button type="submit">提交</button>
</form>

这样,当用户选择一个值并提交表单时,选择框的值将作为外键传递给视图函数,并在数据库中创建一个新的ForeignKeyModel对象,其中包含了选择框的值作为外键的关联。

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

相关·内容

Django 3.1 官网学习路线

如果您想更改服务器端口,请将其作为命令行参数传递。...字段还可以有各种可选参数;在本例中,我们将投票默认设置为 0。 最后,请注意使用定义了关系。这告诉 Django 每个选择都与一个问题相关。...按照惯例,Django 会将"_id"附加到外字段名。(是的,你也可以重写这个。) 关系是通过约束来显式。...不要担心可延期部分;它告诉 PostgreSQL 在事务结束之前不要强制执行。...“添加选择”表单如下所示: 在该表单中,“Question”字段是一个选择,包含数据库中每个问题。Django 知道一个应该在管理中表示为一个。在我们例子中,目前只存在一个问题。

8.2K10
  • Django 2.2文档系列】Model on_delete参数用法

    场景 我们用DjangoModel时,有时候需要关联。关联时,参数:on_delete几个配置选项到底是干嘛呢,你知道吗? 参数介绍 models.CASCADE 级联删除。...Django会模拟SQL约束行为,在删除此条数据时,同事删除外关联对象。...比如:用户有一个关联是用户健康记录表,当用户删除时,配置了这个参数健康记录表中跟这个用户有关数据也会被删除。...当数据被删除时,被关联内容被设置为null。 models.SET_DEFAULT 将设置为默认必须设置有默认 。...models.SET()将SET()设置作为 ,如果传递了callable,则调用它结果。 DO_NOTHING不采取行动。

    2K10

    Django学习-第七讲:django常用字段、字段属性,和表关系、操作

    因为Django在处理字符串相关Field时候,即使这个Fieldnull=False,如果你没有给这个Field传递任何,那么Django也会使用一个空字符串""来作为默认存储进去。...因此这里我们首先来介绍下Django使用。 类定义为class ForeignKey(to,on_delete,**options)。...因此在底层,Django为Article表添加了一个属性名_id字段(比如author字段名称是author_id),这个字段是一个,记录着对应作者主键。...4.SET_DEFAULT:设置默认。如果那条数据被删除了,那么本条数据上就将这个字段设置为默认。如果设置这个选项,前提是要指定这个字段一个默认。...5.SET():如果那条数据被删除了。那么将会获取SET函数中作为这个

    4K30

    Django项目知识点(三)

    ,也可另立主键并将“一”和“多”两表主键作为关联表; 多对多表,则必须设中间关联表,关联表设独立主键,并引入两个“多”头主键作为关联表。...PROTECT:此设置,是会报完整性错误。 SET_NULL:此设置,会把设置为null,前提是允许为null。 SET_DEFAULT:此设置,会把设置为默认。...一对多:当一张表中创建一行数据时,有一个单选下拉(可以被重复选择) 一个学院信息表有多个学生信息表 再比如文章和作者之间关系。一个文章只能由一个作者编写,但是一个作者可以写多篇文章。...在这里插入图片描述 如果没有学生,没有课程来报名上学干嘛,所以是多对一,多个学生合成一张报名表 注意:和一对一关系时候需要加on_delete选项,此参数为了避免两个表里数据不一致问题,不然会报错...一般使用CASCADE 表示级联删除 也就是有一个数据其中一个表删了,管聊表就会删除,想下如果有个学生不读了,删掉了所有学生报名表中数据,它绑学生,课程,是不是先把它删了,这就是级联删除,如果设置了

    1.9K30

    Django管理后台技巧分享之实例关系搜索,autocomplete_fields字段使用

    我希望在文章选择主题时候可以输入关键字来搜过滤,这样可以减少可选项。基于这个需求,我又重新去看了一下Django关于admin教程,终于找到了方法,现在分享一下。...问题现象 首先来看一下这个问题现象,其实这个在Django模型设计里面非常常见,就是当模型之间有关联时候,给一个模型实例选择关联模型实例时候,如果对方数量很多,会导致查找非常麻烦。...模型,这里设置autocomplete_fields字段为['question'],表示意思是当模型Choice实例在选择Question实例是可以进行搜索,而搜索规则就是Question管理里面定义...['name', 'subject__name'] @admin.register(Article) class ArticleAdmin(admin.ModelAdmin): # 可以给选择增加搜索...,前提是管理模型必须设置search_fields作为搜索条件 autocomplete_fields = ['topic'] 看一下效果: 这里已经出现了搜索,可以通过搜索条件来过滤选项

    61120

    Django Form设置文本为readonly操作

    Django开发网站时候,前端页面内文本总是不能被设置为只读,找了一些资料发现可以在form class里面进行设置。...__init__(*args,**kwargs), 注意这里__init__()方法里没有self。*args会传递要展示信息, **kwargs会传递改变文本框格式信息。...""" 方法二: """ 在创建文本时候实用Djangowidget 设置文本属性为 readonly """ class my_info_form(forms.Form): user_id...一:disabled disabled 属性规定应该禁用 input 元素,被禁用 input 元素,不可编辑,不可复制,不可选择,不能接收焦点,后台也不会接收到传。...示例: <input type=”text” readonly unselectable=”on” 以上这篇Django Form设置文本为readonly操作就是小编分享给大家全部内容了

    1.7K21

    35.Django2.0文档

    它有一个或多个作者(和作者是多对多关联关系[many-to-many]), 只有一个出版商(和出版商是一对多关联关系[one-to-many],也被称作          [foreign key...以下示例演示如何将所有Publishercountry字段由’U.S.A’更改为’USA’: ? update()方法会返回一个整型数值,表示受影响记录条数。...如果你想选择多项,你必须还要按下Ctrl。 虽然管理工具因此添加了注释(help_text),但是当它有几百个选项时,它依然显得笨拙。 更好办法是使用 filter_horizontal。...默认地,管理工具使用`` 下拉`` 来展现`` `` 字段。但是,正如`` 多对多字段`` 那样,有时候你不想忍受因装载并显示这些选项而产生大量开销。...解决这个问题办法是使用`` raw_id_fields`` 选项。它是一个包含字段名称元组,它包含字段将被展现成`` 文本`` ,而不再是`` 下拉`` 。

    11.3K100

    django自定义非主键自增字段类型详解(auto increment field)

    key)” # (primary key)也是(key)一种,key还包括(foreign key)、唯一(unique key) errors.extend(self....) 应用场景: 一对多:当一张表中创建一行数据时,有一个单选下拉(可以被重复选择) 例如:创建用户信息时候,需要选择一个用户类型【普通用户】【金牌用户】【铂金用户】等。...多对多:在某表中创建一行数据是,有一个可以多选下拉 例如:创建用户信息,需要为用户指定多个爱好 一对一:在某表中创建一行数据时,有一个单选下拉(下拉内容被用过一次就消失了 例如:原有含10...与之关联设置为指定,设置:models.SET() b....db_table=None, # 默认创建第三张表时,数据库中表名称 ForeignKey(跨表操作): 跨表操作1 v = models.Host.objects.filter(nid__

    2.3K10

    后端框架学习-Django

    参数=&参数="\> + form表单中method为get GET请求方法中,如果有数据需要传递给服务器,通常会使用查询字符串传递。...models.PROTECT:保护删除,等同于mysql默认RESTRICT SET_NULL:保留关联数据,设置为NULL SET_DEFAULT:将设置为默认。...创建一对一数据 无模型类,和之前相同 有模型类: wife = Wife.objects.create(name=’王夫人’,author = author1(类属性名称绑实例...)) wife = Wife.objects.create(name=’王夫人’,author_id = 1(类属性字段绑)) 一对一查询 正向查询:从查对象 反向查询:从对象查 调用反向属性查询到关联一方...无模型类,和之前相同 有模型类: 类似上面 wife = Wife.objects.create(name=’王夫人’,author = author1(类属性名称绑实例)

    9.5K40

    Django自关联实现多级联动查询实例

    1 问题引出 我们在开发网站时候可能会遇到这种情况,多个字段之间有一定关联性,比如省市县,选择省,之后下一个选择则为该省市集合,选择市之后下一个选择为该市县集合。...一种实现方式是,建立三个模型表,用一对多方式,显然这样是不太合理Django提供了自关联实现,模型自身关联,即一条数据关联另一条数据。 本文以省市县为案例介绍其具体实现方法。...pid:,self自关联,这里也可以使用 AdressInfo null:为True表示可以为空,因为省级行政单位没有父级 blank:为True表示admin后台数据写入时候可以允许为空...'address']}) return JsonResponse(area_list, safe = False) 2.3 前端template 前端主要是显示和执行操作相应,具体实现是通过下拉改变触动相应函数...以上这篇Django自关联实现多级联动查询实例就是小编分享给大家全部内容了,希望能给大家一个参考。

    2.4K10

    Django数据库查询优化与AJAX

    第三范式(3NF):属性不依赖于其他非主键属性,属性直接依赖于主键(冗余性) 不同属性之间不能有传递关系,也就是每一个属性数据不能相互影响。...如: res = models.Book.objects.all()#只有当我们使用res时才会执行数据库查询操作 all、only与defer all 拿到自己所有的属性,但是没有与其他表建立属性...这样做好处:跨表查询也不需要重复走数据库,减轻数据库压力。select_related()括号内放多个字段,逗号隔开,会将多个字段关联表与当前表拼成一张大表。...,特点:按步骤查询多张表,然后将查询结果封装到对象中,给用户感觉好像还是连表操作,括号内支持传多个字段,每放一个字段就会多走一条SQL语句,多查一张表。...先添加普通键值 MyFormData.append('username','ylpb'); // 添加了一组普通简直对,append后面第一个参数是,第二个参数是

    2.4K20

    python基础菜鸟教程_菜鸟课程好还是文都好

    windows+R打开搜索,输入cmd,进入到windows命令行页面,输入: pip install Django 当看到提示suceessful后,表示下载成功。...第二步,在Pycharm中新建Django项目。 在Pycharm左上角菜单栏中,依次点击:File–>new project–>Django。在Location那一栏中可以选择项目存放位置。...之后表示传递参数,这里传递了p1和p2两个参数。 通过这样方式传递参数,就不会出现因为正则匹配错误而导致问题了。在Django中,此类参数解析是通过request.GET.get方法获取。...request.FILES 包含所有上传文件类字典对象 request.GET.get( name ) 拿到GET请求里name,如果某个对应有多个,则不能直接用get取值,需要用getlist...一个绝对或相对URL,将原封不动作为重定向位置。

    1.7K10

    django orm 重点大全

    1.最简单跨表,查询表中符合主表条件记录列表 #用户类型表 class User_typ(models.Model): name=models.CharField(max_length=...(对象列表) obj=User.objects.filter(type__name='普通用户') 2.最简单多表联查,查询表中符合主表主表条件记录列表 #主表aa class aa(models.Model...2.orm字段必须要知道一些属性 (0)null 如果为True,Django 将用NULL 来在数据库中存储空。...(4)unique 如果该设置为 True, 这个数据字段在整张表中必须是唯一 (5)choices 由二元组组成一个可迭代对象(例如,列表或元组),用来给字段提供选择项。...如果设置了choices , 默认表单将是一个选择而不是标准文本,而且这个选择选项就是choices 中选项。

    79240

    Django之路由层

    一对多字段创建时候同步到数据中表字段会自动加_id后缀,如果我们手动加了_id orm也会在给我们加一次,所以我们这里不要加_id """ # 书跟作者是多对多关系字段建在任意一方都可以...,建议建在查询频率高一方 一对多字段创建时候同步到数据中表字段会自动加_id后缀,如果我们手动加了_id orm也会在给我们加一次,所以我们这里不要加_id 多对多关系,django orm会自动帮我们创建书籍和作者第三张关系表...,在做路由分发时候可以给每一个app创建一个名称空间,这样反向解析时候就会选择去对应名称空间去查找。...,就是起名字时候直接把app名字直接加上作为前缀就可以了,如:app01_rep。...3.9Django1.x和2.x版本路由层区别 1.Django2.x中默认url通过path接收,path第一个输入不是正则表达式,里面写是什么就按什么匹配。

    1.3K21

    【云+社区年度正文】Django从入门到精通No.2----模型

    help_text: 字段提示信息 choices:显示选择内容,用不变动数据放在内存中以避免跨表操作 verbose_name: 显示字段名称 error_messages:自定义错误信息...1.多对一 因为是关联关系,所以我们必须指定两个类来进行相互操作,这里涉及到一个操作,即ForeignKey字段,而且要定义在多一方。...db_constraint=True # 是否在数据库中创建约束 parent_link=False # 在Admin中是否显示关联数据 2.多对多 多对多表...,必须设中间关联表,关联表设独立主键,并引入两个“多”头主键作为关联表。...=None # 自定义第三张表时,使用字段用于指定关系表中那些字段做多对多关系表 db_constraint=True # 是否在数据库中创建约束

    2.1K00

    Django 1.10中文文档-第一个应用Part7-自定义管理站点

    在这个表单中,Question字段是一个select选择,包含了当前数据库中所有的Question实例。Django在admin站点中,自动地将所有的关系展示为一个select。...在我们例子中,目前只有一个question对象存在。 请注意图中绿色加号,它连接到Question模型。每一个包含关系对象都会有这个绿色加号。...点击它,会弹出一个新增Question表单,类似Question自己添加表单。填入相关信息点击保存后,Django自动将该Question保存在数据库,并作为当前Choice关联对象。...通俗讲就是,新建一个Question并作为当前Choice。 但是,实话说,这种创建方式效率不怎么样。...你可以点击其中一列表头来让列表按照这列来进行排序,但是was_published_recently这列表头不行,因为Django不支持按照随便一个方法输出进行排序。

    3.6K60
    领券