【问题标题】:Create a row every time another row is created in django每次在 django 中创建另一行时创建一行
【发布时间】:2012-11-06 12:17:57
【问题描述】:

每次在特定表中创建一行时,我想在我的一个数据库表中创建一行。 例如:

class Group(models.Model):
    name               = models.CharField(max_length=50)
    slug               = models.SlugField(unique = True)
    about              = models.TextField(blank = True, null=True)

每次在此表中创建新行时,我都想在 Link 类中添加新行

class Link(models.Model):
    name               = models.CharField(max_length=50)
    slug               = models.SlugField(unique = True)
    location           = models.CharField(max_length= 200)

该组的 slug 将成为 Link 位置的一部分。 我该怎么做?

【问题讨论】:

    标签: python database django model


    【解决方案1】:

    这是 post_save 信号的来源。您可以将其添加到 models.py 的底部:

    from django.db.models.signals import post_save
    
    def create_group_links(instance, created, **kwargs):
        if created:
            Link.objects.create(name='FOO', slug='BAR', location='LOC' + instance.slug)
    post_save.connect(create_group_links, sender=Group)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-22
      • 1970-01-01
      • 1970-01-01
      • 2022-10-16
      相关资源
      最近更新 更多