python - 修改 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 并将其与我之前定义的模型相关联。
解决方案
最后,为了解决这个问题,我做了以下步骤:
- 'Django-activity-stream' 的分支
- 修改模型并使其功能适应这种变化
- 参考原作者上传,就像我自己在 Pypi 中的库一样上传。
这是我的决定,因为有关该主题的文档和另一个问题说 Django 不允许这样做。然后唯一可行的方法是分叉并修改它。
推荐阅读
- select - 选择下一个 1000
- python - Django 错误“home.models.Friend.DoesNotExist:好友匹配查询不存在。”
- java - Spring Boot + Security:无法提供静态页面:不支持请求方法“GET”
- webstorm - 如何在 WebStorm 中关闭区分大小写的完成?
- go - 指针引用未存储在我的 go 程序的结构中
- python - 为什么将 (.|\n)* 更改为 (.| )* 会导致性能大幅下降?
- swift - 为什么在分段控件上使用 UIControlState.normal 会导致此崩溃?
- angular - 如何将服务从 Angular 库注入到另一个 Angular 库
- python - Python 创建自定义魔术方法
- ruby-on-rails - ActionController::RoutingError (没有路由匹配 [POST] "/api"):