views.py查询

from django.db import models

class Blog(models.Model):
    name = models.CharField(max_length=100)
    tagline = models.TextField()

    def __str__(self):
        return self.name

class Author(models.Model):
    name = models.CharField(max_length=200)
    email = models.EmailField()

    def __str__(self):
        return self.name

class Entry(models.Model):
    blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
    headline = models.CharField(max_length=255)
    body_text = models.TextField()
    pub_date = models.DateField()
    mod_date = models.DateField()
    authors = models.ManyToManyField(Author)
    n_comments = models.IntegerField()
    n_pingbacks = models.IntegerField()
    rating = models.IntegerField()

    def __str__(self):
        return self.headline

创建对象

 from blog.models import Blog
 b = Blog(name='Beatles Blog', tagline='All the latest Beatles news.')
 b.save()

对已保存对象的更改
给定已保存到数据库的Blog实例b5,此实例更改其name,并更新它在数据库中的记录

b5.name = 'New name'
b5.save()

在明确调用之前,Django不会访问数据库save()

如何保存ForeignKey和ManyToManyField字段

更新ForeignKey字段的方式和保存普通字段的方式完全相同:将正确类型的对象分配给相关字段即可。假设适当的实例和 已保存到数据库(因此我们可以在下面检索它们):EntryentryEntryBlog

from blog.models import Blog, Entry
>>> entry = Entry.objects.get(pk=1)
>>> cheese_blog = Blog.objects.get(name="Cheddar Talk")
>>> entry.blog = cheese_blog
>>> entry.save()

更新ManyToManyField工作的方式略有不同 - 使用 add()字段上的方法向关系添加记录。此示例将joe实例添加到Author对象:

from blog.models import Author
joe = Author.objects.create(name="Joe")
entry.authors.add(joe)

要ManyToManyField一次性添加多个记录,请在调用中包含多个参数 add(),如下所示:

 john = Author.objects.create(name="John")
paul = Author.objects.create(name="Paul")
george = Author.objects.create(name="George")
ringo = Author.objects.create(name="Ringo")
entry.authors.add(john, paul, george, ringo)

如果尝试分配错误类型的对象,Django会报错
检索对象
要从数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值