首页>>后端>>Python->django如何设置联合主键?

django如何设置联合主键?

时间:2023-12-14 本站 点击:0

导读:本篇文章首席CTO笔记来给大家介绍有关django如何设置联合主键的相关内容,希望对大家有所帮助,一起来看看吧。

Django怎么多表联合查询

先让我们回忆一下在第五章里的关于书本(book)的数据模型:

1

from django.db import models

class Publisher(models.Model):

name = models.CharField(max_length=30)

address = models.CharField(max_length=50)

city = models.CharField(max_length=60)

state_province = models.CharField(max_length=30)

country = models.CharField(max_length=50)

website = models.URLField()

def __unicode__(self):

return self.name

class Author(models.Model):

first_name = models.CharField(max_length=30)

last_name = models.CharField(max_length=40)

email = models.EmailField()

def __unicode__(self):

return u'%s %s' % (self.first_name, self.last_name)

class Book(models.Model):

title = models.CharField(max_length=100)

authors = models.ManyToManyField(Author)

publisher = models.ForeignKey(Publisher)

publication_date = models.DateField()

def __unicode__(self):

return self.title

如我们在第5章的讲解,获取数据库对象的特定字段的值只需直接使用属性。 例如,要确定ID为50的书本的标题,我们这样做:

from mysite.books.models import Book

b = Book.objects.get(id=50)

b.title

u'The Django Book'

但是,在之前有一件我们没提及到的是表现为ForeignKey 或 ManyToManyField的关联对象字段,它们的作用稍有不同。

访问外键(Foreign Key)值

当你获取一个ForeignKey 字段时,你会得到相关的数据模型对象。 例如:

b = Book.objects.get(id=50)

b.publisher

Publisher: Apress Publishing

b.publisher.website

Django Model 怎么使用 UUID 作为主键

Django 1.8现在有一个内置的UUID字段。

import uuid

from django.db import models

class MyUUIDModel(models.Model):

    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)

多看django文档啊。。。用到那就看那即可。不然看了后面忘了前面。

django中model的主键的设置与自增

在django所定义的model里是可以自己设置主键的,具体方法为

但是要注意的是,为了添加元素的过程中主键的自增,主键的设置中不能加入default属性,否则save()的过程将不再是新建元素而是替换元素。

自己在最开始的定义是

AgentInfo_id = models.IntegerField(default=0)

由于设置了默认值,引发了不小的麻烦

django中如何指定主键,比如创建ip属性,ip=IPAddressField(),括号里应该怎么设置啊。。。

Django1.10版本以上应该使用:

ip = models.GenericIPAddressField()

而以下的版本使用:

ip = models.IPAddressField()

Django 主键自增

from django.db import models

# Create your models here.

class Student(models.Model):

    student_id = models.BigAutoField(primary_key=True)

这是model定义。

默认情况下,自增id都是从1开始计数的。如果你想从10001开始,就需要手动创建一个对象,为其设置student_id为10001,以后创建对象的studeng_id就从10002开始自动增加。

first_student =models.Student(student_id=10001)

first_student.save()

更多相关内容参考刘江的Django教程

django,models怎么把两个字段设成primary key

主键只能有一个啊

它作为记录唯一性的标识,也只需要一个就可以了

如果不单独设置,django会默认设置一个名为id的键作为主键,自动递增

结语:以上就是首席CTO笔记为大家整理的关于django如何设置联合主键的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Python/33387.html