如何获取相关模型对象的某些字段值并将其保存到另一个字段?

时间:2019-04-26 14:24:37

标签: django django-models orm

我的模型 Book ReadList 相关,我可以在Django Admin上使用它们,但我想获取 {{1 }} 字段,并在保存时将其保存到新对象的 bookPageCount 字段中。

pageCount

编辑:在Higor提醒后进行了更改,但仍然存在问题。我得到的错误是from django.db import models from django.db.models.signals import post_save, pre_save from django.dispatch import receiver # Create your models here. class Book(models.Model): bookname = models.CharField(max_length=200, verbose_name='Kitap Adı') bookAuthor = models.CharField(max_length=100, verbose_name='Yazar Adı') bookPublisher = models.CharField(max_length=100, verbose_name='Yayın Evi') bookPageCount = models.PositiveIntegerField(verbose_name='Sayfa Sayısı') bookAddDate = models.DateField(verbose_name='Kitaplığa Eklenme Tarihi') class Meta: verbose_name = 'Kitap' verbose_name_plural = 'Kitaplar' def __str__(self): return self.bookname class ReadList(models.Model): bookName = models.ForeignKey('kitaplik.Book', related_name='book', on_delete=models.CASCADE, verbose_name='Kitap Adı') readerName = models.ForeignKey('ogrenciler.Students', on_delete=models.CASCADE, related_name='readerName', verbose_name='Okuyan Kişi') dateOfRead = models.DateField(verbose_name='Okuma Tarihi') pageCount = models.PositiveIntegerField(verbose_name='Sayfa Sayısı',blank=True, null=True) class Meta: verbose_name = 'Okuma Günlüğü' @receiver(post_save, sender=ReadList) def get_pageCount(sender, instance, **kwargs): instance.pageCount = instance.Book.bookPageCount instance.save

2 个答案:

答案 0 :(得分:1)

我认为您弄错了一些名字。

@receiver(post_save, sender=ReadList)
def get_pageCount(sender, instance, **kwargs):
    instance.pageCount = instance.book.bookpageCount
    instance.save()

答案 1 :(得分:0)

bookName是字段名称

@receiver(post_save, sender=ReadList)
def get_pageCount(sender, instance, **kwargs):
    instance.pageCount = instance.bookName.bookPageCount
    instance.save()