Я создал структуру знаний, в которой есть «блоки», и у каждого блока есть дочерние элементы для обслуживания в различных ситуациях.
Код:
models.py
class KBSBlock(models.Model):
name = models.CharField(max_length=150, unique=True)
code = models.CharField(max_length=4, blank=True)
status=models.CharField(max_length=1, choices=Status_Choices, default='Draft')
enter_by = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.PROTECT)
tags = TaggableManager(blank=True)
attribute1 = models.CharField(max_length=100)
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.name
def save(self, *args, **kwargs):
if self.code is None or self.code == "":
self.code = create_code4(self)
super(KBSBlock, self).save(*args, **kwargs)
@receiver(post_save, sender=KBSBlock)
def create_block(sender, instance, created, **kwargs):
if created:
#create_block = BlockDetails.objects.create(block_dts=instance)
print('Working!')
class BlockDetails(models.Model):
block_dts = models.ForeignKey('KBSBlock', on_delete=models.CASCADE)
code = models.CharField(max_length=2, blank=True)
attribute1 = models.CharField(max_length=100, default='All')
created_at = models.DateTimeField(auto_now_add=True)
enter_by = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.PROTECT)
status=models.CharField(max_length=1, choices=Status_Choices, default='Draft')
Всякий раз, когда я создаю блок, я хочу создать общие детали в BlockDetails для блока с помощью (code = '00 ', attribute1 =' All ', enter_by =' request.user ')
Itпечатает «рабочий» бит с хэшированной строкой «create_block».
Я использую PostgreSQL, Django 2.1 и Python 3.7 и не могу понять, как это правильно.
Помощь Пожалуйста