外键的使用
- 作者与书籍是一对多的关系,一个作者可以出版多本书籍,但一个书籍只能有一个作者出版
class Author(models.Model):
name = models.CharField(max_length=30)
phone = models.CharField(max_length=11)
email = models.EmailField()
age = models.IntegerField(default=0)
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.ForeignKey("Author", on_delete=None)
book_time = models.DateTimeField(auto_now_add=True)
on_delete=None,
on_delete=models.CASCADE,
on_delete=models.DO_NOTHING,
on_delete=models.PROTECT,
on_delete=models.SET_NULL,
on_delete=models.SET_DEFAULT,
on_delete=models.SET,
a. 与之关联的值设置为指定值,设置:models.SET(值)
b. 与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象)
插入数据
from django.shortcuts import render
from django.http import HttpResponse
from models import Author,Book
def insertauthor(request):
name = request.GET.get('name')
phone = request.GET.get("phone")
email = request.GET.get("email")
age = request.GET.get("age")
author = Author()
author.name = name
author.phone = phone
author.email = email
author.age = age
author.save()
return HttpResponse("ok")
def insertBook(request):
title = request.GET.get('title')
name = request.GET.get("name")
authors = Author.objects.filter(name=name)
author = authors[0]
book = Book()
book.title = title
book.author = author.id
book.save()
return HttpResponse("ok")
def search(request):
name = request.GET.get("name")
books = Book.objects.filter(author=author)
book = books[0]
author = book.author.value
string = "%s %s" % (name, author)
return HttpResponse(string)