首页 文章

自动更新多个到多个字段

提问于
浏览
0

我有以下数据库模型

class Author(models.Model):
    choices=['Mr.','Mrs.','Er.','Dr','Prof',]
    name=models.CharField('Authors Name',max_length=50)
    dob=models.DateField('Birth Date',null=True)
    addr=models.CharField('Address',max_length=100,null=True)
    email=models.EmailField('Email',null=True)
    salutation=models.CharField('Salutation',max_length=4)
    headshot=models.ImageField(upload_to='authors/',null=True,blank=True)

    def __str__(self):
        return self.name
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 __str__(self):
        return self.name

class Book(models.Model):
    title=models.CharField(max_length=100)
    authors=models.ManyToManyField(Author)
    publisher=models.ForeignKey(Publisher)
    publication_date=models.DateField()
    pages=models.IntegerField(blank=True,null=True)
    price=models.FloatField()
    cover=models.ImageField(upload_to='books/',null=True,blank=True)

    def __str__(self):
        return self.title

Book,Author和Publisher对象将从django管理创建 . 对于创建并从作者列表中选择作者列表的每个Book对象,Author的books属性应该使用该作者提供的书籍自动更新 . 即如果有作者名叫Ram,Shyam,Hari,以及是否与作者Shyam和Hari以及另一个与Shyam和Ram一起创作新书对象 . 要求是Shyam的书籍字段应该使用Two Book对象自动更新 . 怎么做到呢?

1 回答

  • 0

    你的模型是错误的,你不应该这样做 .

    多对多字段已经是双向的 . 你应该只在一侧定义字段本身;你把它放在哪一个,无论是书籍还是作者,都无关紧要,但只选择一个 . 通过该更改,当您将项目添加到关系的一侧时,它将自动在另一侧显示 .

相关问题