Изменить модель, созданную 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 и связать его с моделью, которую я определил ранее.
1 ответ
Наконец, чтобы решить эту проблему, я сделал следующие шаги:
- Форк Django-activity-stream
- Модифицировал модель и адаптировал ее функции к этому изменению
- Загрузите это как мою собственную библиотеку в Pypi со ссылкой на оригинального автора.
Это мое решение, потому что документация и другие вопросы по этой теме говорят, что Django не позволяет этого делать. Тогда единственный жизнеспособный метод - это fork и изменить его.