我为书和作者创建了两个不同的模型,
class book(models.Model):
title = models.CharField(max_length=200)
author = models.CharField(max_length = 200)
class author(models.Model):
name = models.CharField(max_length=200)
GENDER = (
('M', 'Male'),
('F', 'Female')
)
gender = models.CharField(max_length=1, choices=GENDER)
是否可以不使用外键链接这两个模型,并自动从书籍信息(用户输入)生成作者? 提前谢谢!
答案 0 :(得分:2)
您可以使用Django的signals。
@receiver(post_save, sender=Book)
def make_author(sender, instance, created, **kwargs):
if created:
Author.objects.create(name=instance.author)
每次使用Author
字段中的Book
创建新的name
时,都会创建新的Book.author
。
另一种方法是覆盖Book.objects.create()
模型上的Book
方法,并直接在Author
模型中创建Book
实例。优点是它允许您在创建(两个)对象时直接添加更多数据。缺点是它会使Book
取决于Author
的存在。