首页 > 解决方案 > 修改 django-activity-stream 生成的模型

问题描述

我正在创建一个项目,该项目需要在数据库中对用户执行的各种操作进行审计。为此,我正在使用“Django-activity-stream”来正确创建其模型。

我想更改此库生成的模型中一个参数的类型,但我不知道该怎么做。

PD:这是我第一次使用 Django,并且看过两者的文档,但我不太确定。

如果我解释错了,或者您需要有关它的更多信息,请毫无问题地问我。

EDIT1:Lib 'Django-activity-stream' 通过模型 'Action' 创建下一个迁移

migrations.CreateModel(
            name='Action',
            fields=[
                ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, help_text='', auto_created=True)),
                ('actor_object_id', models.CharField(max_length=255, db_index=True, help_text='')),
                ('verb', models.CharField(max_length=255, db_index=True, help_text='')),
                ('description', models.TextField(blank=True, null=True, help_text='')),
                ('target_object_id', models.CharField(max_length=255, blank=True, null=True, db_index=True, help_text='')),
                ('action_object_object_id', models.CharField(max_length=255, blank=True, null=True, db_index=True, help_text='')),
                ('timestamp', models.DateTimeField(db_index=True, default=django.utils.timezone.now, help_text='')),
                ('public', models.BooleanField(db_index=True, default=True, help_text='')),
                ('data', DataField(blank=True, null=True, help_text='')),
                ('action_object_content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, blank=True, null=True, help_text='', related_name='action_object', to='contenttypes.ContentType')),
                ('actor_content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, help_text='', related_name='actor', to='contenttypes.ContentType')),
                ('target_content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, blank=True, null=True, help_text='', related_name='target', to='contenttypes.ContentType')),
            ],
            options={
                'ordering': ('-timestamp',),
            },
        ),

我只想将参数“verb”从 models.CharField 更改为 models.ForeignKey 并将其与我之前定义的模型相关联。

标签: pythondjangodjango-activity-stream

解决方案


最后,为了解决这个问题,我做了以下步骤:

  1. 'Django-activity-stream' 的分支
  2. 修改模型并使其功能适应这种变化
  3. 参考原作者上传,就像我自己在 Pypi 中的库一样上传。

这是我的决定,因为有关该主题的文档和另一个问题说 Django 不允许这样做。然后唯一可行的方法是分叉并修改它。


推荐阅读