我在Django中有一些模型继承级别:
class WorkAttachment(models.Model):
""" Abstract class that holds all fields that are required in each attachment """
work = models.ForeignKey(Work)
added = models.DateTimeField(default=datetime.datetime.now)
views = models.IntegerField(default=0)
class Meta:
abstract = True
class WorkAttachmentFileBased(WorkAttachment):
""" Another base class, but for file based attachments """
description = models.CharField(max_length=500, blank=True)
size = models.IntegerField(verbose_name=_('size in bytes'))
class Meta:
abstract = True
class WorkAttachmentPicture(WorkAttachmentFileBased):
""" Picture attached to work """
image = models.ImageField(upload_to='works/images', width_field='width', height_field='height')
width = models.IntegerField()
height = models.IntegerField()
WorkAttachmentFileBased
和继承了许多不同的模型WorkAttachment
。我想创建一个信号attachment_count
,当创建附件时,该信号将更新父工作的字段。认为为父发件人(WorkAttachment
)发出的信号也会在所有继承的模型上运行,这是合乎逻辑的,但事实并非如此。这是我的代码:
@receiver(post_save, sender=WorkAttachment, dispatch_uid="att_post_save")
def update_attachment_count_on_save(sender, instance, **kwargs):
""" Update file count for work when attachment was saved."""
instance.work.attachment_count += 1
instance.work.save()
有没有办法使此信号对所有继承自其的模型起作用WorkAttachment
?
Python 2.7,Django 1.4 pre-alpha
附言:我已经尝试了在网上找到的一种解决方案,但是它对我不起作用。
您可以尝试类似:
model_classes = [WorkAttachment, WorkAttachmentFileBased, WorkAttachmentPicture, ...]
def update_attachment_count_on_save(sender, instance, **kwargs):
instance.work.attachment_count += 1
instance.work.save()
for model_class in model_classes:
post_save.connect(update_attachment_count_on_save,
sender=model_class,
dispatch_uid="att_post_save_"+model_class.__name__)
(免责声明:我尚未测试以上内容)
我正在做一个项目,我需要使用几个DateTime字段,我已经在我的模型中定义了,然后在模板中,我正在使用https://tempusdominus.github.io/bootstrap-4/插件,但是当我提交表单时,有两个问题来吧: 1) :Django说为所有DateTime字段输入有效的日期/时间(2):选择有效选项<代码>[“玉米油”]不是可用选项之一。 以下是我尝试过的: 从: 从: 从
问题内容: 我正在尝试学习python / django。 现在,我在models.py中拥有了所有模型 是否可以分解我的模型,以便每个模型在单独的models文件夹中可以有一个文件,以便可以执行以下操作: 问题答案: 有可能,只需确保将__init__.py在models目录中创建的所有模型导入。在你的情况下,它看起来像这样: 这需要完成,因为Django查找应用程序的模型。 正如其他人提到的那
问题内容: 我在想,如果以下迁移是可能的Django的南部和仍然保留的数据。 之前: 我目前有两个应用程序,一个叫做电视,一个叫做电影,每个都有一个VideoFile模型(在这里简化): tv/models.py: movies/models.py: 后: 因为这两个videofile对象是如此相似,所以我想摆脱重复并在一个名为media的单独应用中创建一个新模型,其中包含通用的VideoFile
具有以下类别: 和 和 和 和 和 因此,应用程序需要动态实例化步骤子类对象,相应地设置配置并运行步骤,如下所示。 错误消息: "方法setConfig(捕获#8-of?扩展Config)在类型Step中 查看文档,在这种情况下,Java看起来不友好:https://docs.oracle.com/javase/tutorial/java/generics/wildcardGuidelines.h
def validate_mobile_number(value):如果不是str(value).isdigit():引发ValidationError(“请输入有效的手机号码”)类ModelA(AbstractUser): mobile=models.CharField(u(“mobile”),unique=True,max_length=10,验证器[validate_mobile_numbe
起源: 儿童1: 我正在使用Hibernate映射在MySQL中创建表。我对冬眠是完全陌生的。正在创建表,并且子表有一个外键,它引用父表id,正如我提到的@PrimaryKeyJoinColumn注释。在子表中添加字段也会在扩展时将其添加到父表中。但删除父表中的行不会删除子表中的行。也许我在某个地方走错了路。我的最终目标是扩展父表,并使用子表向其添加记录。我需要一些指针。也许是其他注释,或者其他实