添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Django外键介绍

外键是一个表的字段可以灵活地用于另一个表的过程。因此,可以通过外键轻松链接两个不同的表。这两个表的链接可以很容易地通过外键过程来实现。将强制通过所涉及的键允许两个表之间的链接。在某些情况下,外键也被称为参考键。外键允许不同表的主键之间的匹配。根据生成的关系类型,外键字段将允许多对一关系。因此可以灵活地连接多张桌子与另一端的一张桌子。所以这种多字段对一个字段的查找可以通过外键有效地提出。可以在其中分配外键字段的参数

Foreignkey name = models.ForeignKey(Table_name, null_argument, Ondelete_arguemnt)

这里第一个参数代表一个表名。因此,分配为外键模型的第一个参数的表的名称允许提及借用相应键的表。所以这里会提到取外键值的表。这是该方法的第一个参数。接下来,null 参数用于提及与表中进一步或已经存在的记录相关联的值 null。将此记录提及为 null 允许已经落后的记录或添加的新记录在未提及任何值时用 Null 值填充。

下一个论点是最重要的论点。此参数决定删除对临时表的影响需要如何影响父表。所以,当一个父表的记录被删除时,这里的对应记录应该承担影响或者可以忽略的影响是这里的确定。因此,基于此确定,对父表的更改将相应地反映在此处。此外,等式的左侧是外键列的名称。此名称提及新创建的列的名称。所以这里给出的名称值将是列的名称。

创建一个 Django Jsonfield

如何创建 Django Jsonfield 解释如下:

1.Models.py文件的变化

外键必须在 modelys.py 文件中声明,在下面的示例中,我们可以注意到外键被称为 example_creator。此外,该字段被声明为外键,因为它的值是从原始表 User 集成的,另外还有一些属性,例如将 null 值关联为 True,并且 ondelete 函数是使用 CASCADE 生成的。

from django.db import models
from django.contrib.auth.models import User
# Model variables
# Create your models here.
class Bride(models.Model):
    Example_name = models.CharField(max_length=200,null=True)
    Example_age = models.IntegerField(null=True)
    Example_thegai = models.CharField(max_length=200,null=True)
    Example_State =  models.CharField(max_length=50,null=True)
    Example_District = models.CharField(max_length=50,null=True)
    Example_Address = models.TextField(null=True)
    Example_Phone = models.BigIntegerField(null=True)
    Example_profession = models.CharField(max_length=200,null=True)
    Example_salary = models.BigIntegerField(null=True)
    Example_Under_Graduation_Degree = models.CharField(max_length=200,null=True)
    Example_Under_Graduation_college = models.CharField(max_length=400,null=True)
    Example_Post_Graduation_Degree = models.CharField(max_length=200,null=True)
    Example_Post_Graduation_college = models.CharField(max_length=400,null=True)
    Example_Rasi = models.CharField(max_length=200,null=True)
    Example_Nakshatra = models.CharField(max_length=200,null=True)
    Example_Creator  =  models.ForeignKey(User, null=True, on_delete=models.CASCADE)
    def __str__(self):
        return self.name

2.Forms.py文件的变化

模型的记录集成到forms.py 文件中的表单中。这里执行模型 Bride 的集成。所以在这里继承新娘模型将允许新娘模型的记录与该表单页面相关联。

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 视图希望通过注册在其中的外键字段来制作表单的中间件以进行渲染。单击提交按钮将保存表单。render 函数是 Django 库中的第一个导入项。此导入过程将允许将 HTML 文件呈现给呈现的浏览器。在此导入之后,将执行 HTTP 响应。在views方法中,期望值Form被实例化,这使得表单可以灵活呈现。实例化将在名为 form 的值上执行。保存过程将与表单一起进行。保存()方法。然后将获取当前登录的用户详细信息并将其存储在表单中。这就是表单存储的方式。

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 页面进行相应的更改。

form.html

{% block content %}
<form method="POST" class='formarea'>
<div class='formdiv'>
{{ form.as_p }}
{% csrf_token %}
<input type="submit" class='button' value="submit">
</div>
</form>
{% endblock content %}

本文描述了如何在 Django 设置中灵活地声明外键,如何将更改呈现到表单项,以及如何从那里传递输入值。在应用程序中创建的外键连接的数量没有限制。此外,Django 设置的模型允许非常复杂地维护这些字段,而无需在数据库中应用任何巨大的更改。这是 Django 设置的主要优点。