Изменить модель, созданную 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 ответ

Решение

Наконец, чтобы решить эту проблему, я сделал следующие шаги:

  1. Форк Django-activity-stream
  2. Модифицировал модель и адаптировал ее функции к этому изменению
  3. Загрузите это как мою собственную библиотеку в Pypi со ссылкой на оригинального автора.

Это мое решение, потому что документация и другие вопросы по этой теме говорят, что Django не позволяет этого делать. Тогда единственный жизнеспособный метод - это fork и изменить его.

Другие вопросы по тегам