繁体   English   中英

将ForeignKey映射到另一个类

[英]Mapping a ForeignKey with another class

这是我的Django Models.py

class Test1(models.Model):
    id = models.AutoField(db_column='Id', primary_key=True)  
    name = models.TextField(db_column='Name', blank=True, null=True)  

class Test2(models.Model):
    id = models.AutoField(db_column='Id', primary_key=True) 
    sequence = models.IntegerField(db_column='Sequence') 
    test1id = models.ForeignKey('Test1', models.DO_NOTHING,null=False, db_column='Test1Id')

我想要做的是确保保存Test1 id时,它会自动填写test1id。

不知道您要在这里做什么,但是如果您想为模型实施任何后保存操作,请查看django signal 特别是在post_save信号处。

这是模型Test1post_save信号用法示例(假设您要创建新的Test2对象):

from django.db.models.signals import post_save
from django.dispatch import receiver

@receiver(post_save, sender=Test1)
def create_test2(sender, instance, created, **kwargs):
    Test2.objects.create(test1id=instance)

您可以重新定义保存方法:

def save(self, **kwargs):
    if self.pk is None:
        super(Test1, self).save()
        Test2.objects.create(test1id=self)
    else:
        super(Test1, self).save()

因此,当您保存Test1时,将创建一个Test2条目

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM