导读:本篇文章首席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如何设置联合主键的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~