每次在 django 中创建另一行时创建一行
Posted
技术标签:
【中文标题】每次在 django 中创建另一行时创建一行【英文标题】:Create a row every time another row is created in 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 位置的一部分。 我该怎么做?
【问题讨论】:
【参考方案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)
【讨论】:
以上是关于每次在 django 中创建另一行时创建一行的主要内容,如果未能解决你的问题,请参考以下文章