django-Model 实例方法
1.create
# 创建对象不会触及数据库,需要save()
# 自定义模型有两种方法,第一种的使用@classmethod
# 第二种是(建议使用) ‘在自定义管理器上添加方法’
class BookManager(models.Manager):
def create_book(self, title):
book = self.create(title=title)
return book
class Book(models.Model):
title = models.CharField(max_length=100)
objects = BookManager()
Book.objects.create_book('Hello World')
2. add
# 将指定的模型对象添加到相关的对象集。
b = blog.objects.get(id=1)
e = Entry.objects.get(id=234)
b.entey_set.add(a)
# add将执行update()来进行更新,这要求对象这此之前已经使用save()保存,add还支持关键字段做为参数,如上面可改写成:
b.enrty_set.add(234)
3. __str__()
只要定义了,无论合适调用模型的 str() 对象,都会调用该方法,如:
from django.db import models
class Person(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
def __str__(self):
return f'{self.first_name} {last_name}'
4. get_absolute_url()
定义一个 get_absolute_url() 方法来告诉 Django 如何计算对象的规范 URL 。 对应调用者,此方法放回一个字符串,该字符串可用于通过 HTTP 引用对象。如:
from django.urls import reverse
def get_absolute_url(self):
return reverse('people.views.details', ages=[str(self.id)])