Django OneToOneField(20)

作者 : 慕源网 本文共3848个字,预计阅读时间需要10分钟 发布时间: 2021-11-22 共321人阅读

本文是Django教程的一部分,您可以点击Django教程系列查看所有教程。

Django OneToOneField(20)

Django OneToOneField 简介

当确实需要以紧密耦合的方式连接两个表时,就会发生 Onetoonefield 关系。因此,对于第一个表中的每条记录,第二个表中都会有相应的记录。像这样的场景将邀请一对一的关系。特别是描述一对一关系的一个常见场景是当当前表的列太高,并且大量的列会影响从表中检索记录的速度时,最好可以将表拆分成两个不同的表,两个表之间将保持连接。这种拆分称为从表级别单对一个拆分。因此,这里的两个表都将与一个特定的列紧密耦合。基本上,onetoonefield 关系不是很可取。

语法:

OnetoOneField_name = models.OneToOneField(Table_name, null_argument, Ondelete_arguemnt)

由于第一个参数,可以声明表调用。因此,onetoonefield 主题语法中的主要参数可能类似于desk call。在 onetoonefield 实例的第一个参数内引用的此desk 调用可以表示可以为声明的主题继承值的desk 。因此,这可能是从中提取 OnetoOneField 密钥费用的费用主题可能与此处相关。因此,作为技术陈述的主要论点,而且是使用的一些优先论点,它发挥着主要作用。接下来,null 参数用于提及与额外出现或已经存在于desk 内的统计数据相关联的费用空值。

接下来必须声明 ondelete 参数,这是一个非常关键的参数,因为该参数决定了删除实例中父表和临时表之间的影响。这意味着根据此处提到的值,删除父表记录将产生可持续影响或没有影响。当父表记录被删除时,这些记录将根据此处关联到该字段的值被删除或阻止删除。所以 ondelete 参数也是表中另一个非常关键的值或参数。

创建一个 DJANGO OnetoOneField:

1) Models.py 文件的变化:

首先,必须在 models.py 文件中声明 onetoone 字段的声明。这里 onetoonefild 的创建者被声明为保存 onetoone 关系的字段。这种一对一关系的存在是因为它的字段是从不同的表中提取的,此外,诸如将空值关联为 True 和 ondelete 函数等属性是使用 CASCADE 实现的。

例如:(models.py)

from django.db import models
from django.contrib.auth.models import User
# Model variables
# Create your models here.
class Bride(models.Model):
OnetoOneField_name = models.CharField(max_length=200,null=True)
OnetoOneField_age = models.IntegerField(null=True)
OnetoOneField_thegai = models.CharField(max_length=200,null=True)
OnetoOneField_State = models.CharField(max_length=50,null=True)
OnetoOneField_District = models.CharField(max_length=50,null=True)
OnetoOneField_Address = models.TextField(null=True)
OnetoOneField_Phone = models.BigIntegerField(null=True)
OnetoOneField_profession = models.CharField(max_length=200,null=True)
OnetoOneField_salary = models.BigIntegerField(null=True)
OnetoOneField_Under_Graduation_Degree = models.CharField(max_length=200,null=True)
OnetoOneField_Under_Graduation_college = models.CharField(max_length=400,null=True)
OnetoOneField_Post_Graduation_Degree = models.CharField(max_length=200,null=True)
OnetoOneField_Post_Graduation_college = models.CharField(max_length=400,null=True)
OnetoOneField_Rasi = models.CharField(max_length=200,null=True)
OnetoOneField_Nakshatra = models.CharField(max_length=200,null=True)
OnetoOneField_Creator = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
def __str__(self):
return self.name

2) Forms.py 文件的变化:

表单级集成在 forms.py 文件上执行。声明的表单和声明的模型之间的连接是在此处创建的。因此,这种连接性会将表单中的每个字段与声明的模型中的所有字段相关联。这带来了在声明的形式和使用的模型之间建立的互连。

例如:(forms.py)

from django import forms
from .models import Bride
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
class Valueform(forms.ModelForm):
# Rasi = forms.ChoiceField(choices = Rasi_CHOICES)
class Meta:
model = Bride
fields = "__all__"

3)为表单创建一个视图:

一个 Django 视图想要通过在其中注册的 OnetoOneField 键字段来塑造形状的中间件以进行渲染。单击发布按钮将存储形状。渲染特性是 Django 库中的主要导入对象。此导入方法将允许将 HTML 报告呈现给显示的浏览器。上传后,可能会实现 HTTP 反应。在透视技术中,预测的成本形式被实例化,这使得形状可以灵活地呈现。实例化可能以名为 shape 的成本实现。store 方法将采用具有形状的区域。Save() 技术。然后,可能会获取最前沿的登录人员信息并将其保存到形状上。这就是形状车库将采用区域的方式。

例如:views.py

def form_view(request):
form = Valueform(request.POST or None)
if form.is_valid():
post = form.save()
post.Creator = request.user
print('Creator user stored',request.user)
post.save()
return render(request,'form.html', {"form": form})
def form_edit(request):
form = Valueform(request.POST or None)
if form.is_valid():
post = form.save()
post.Creator = request.user
print('Creator user updated',request.user)
post.save()
return render(request,'form_edit.html', {"form": form}
def form_update(request):
form = Valueform(request.POST or None)
if form.is_valid():
post = form.save()
post.Creator = request.user
print('Creator user updated',request.user)
post.save()
return render(request,'form_edit.html', {"form": form}

4) 制定用于显示表单的 HTML 文件:必须对 HTML 页面进行相应的更改。


慕源网 » Django OneToOneField(20)

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录