django_4数据库2——表外键

Posted daduryi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django_4数据库2——表外键相关的知识,希望对你有一定的参考价值。

表关系:

  • many to one
  • many to many
  • one to one

many to one


记录是如何创建出来的?      先创建one,在在创建many,创建时加入ForeignKey

from django.db import models

# Create your models here.
class Enter(models):
    name = models.CharField(max_length=30)
    
    def __str__(self):
        return self.name
        
    __repr__ = __str__
    
class Blog(models):
    name = models.CharField(max_length=30)
    entry = models.ForeignKey(Enter)      #参数为one项的类名
    
    def __str__(self):
        return self.name
        
    __repr__ = __str__   

 

使用交互进行检索

In [1]: from blog.models import Entry, Blog

In [2]: entry1 = Entry.objects.create(name=alen)            #创建对应的one项(Entry)

In [3]: entry2 = Entry.objects.create(name=max)

In [4]: entry3 = Entry.objects.create(name=carl)

In [6]: blog1 = Blog.objects.create(name=alen_blog1, entry=entry1)  #创建对应many项

In [8]: blog1.entry          #(many)从many端进行检索到one
Out[8]: alen

In [9]: blog1.entry_id
Out[9]: 1

In [10]: entry1.blog_set        #(one)它所对应的blog(many)都有哪些
Out[10]: <django.db.models.fields.related_descriptors.create_reverse_many_to_one_manager.<locals>.RelatedManager at 0x7f438ce2db00>

In [11]: entry1.blog_set.all()
Out[11]: <QuerySet [alen_blog1]>

 

如何把这这种对应的结果关系如何在web界面实现?

 

以上是关于django_4数据库2——表外键的主要内容,如果未能解决你的问题,请参考以下文章

sql 添加外键语句

mysql外键约束怎么写

MySQL---案例实战{拆分多表外键创建等}

判断子表外键约束参数类型

mysql多表外键? - 初学者

数据仓库事实表外键生成