WAŻNE: To pytanie nie ma już zastosowania.Nie można utworzyć wystąpienia modelu z kluczem GenericForeignKey w migracji
W Django 1.7 migracji staram się tworzyć wpisy komentarz programowo za pomocą następującego kodu:
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
class Migration(migrations.Migration):
def create_genericcomment_from_bookingcomment(apps, schema_editor):
BookingComment = apps.get_model('booking', 'BookingComment')
Comment = apps.get_model('django_comments', 'Comment')
for comment in BookingComment.objects.all():
new = Comment(content_object=comment.booking)
new.save()
dependencies = [
('comments', '0001_initial'),
('django_comments', '__first__'),
]
operations = [
migrations.RunPython(create_genericcomment_from_bookingcomment),
]
I to powoduje błąd: TypeError: 'content_object' is an invalid keyword argument for this function
Jednak ten sam kod (tj Comment(content_object=comment.booking)
) działa po uruchomieniu w powłoce.
Próbowałem utworzyć pusty modelu z new = Comment()
a następnie ustawić wszystkie niezbędne pola ręcznie, ale mimo że ustawione content_type
i object_pk
pola odpowiednio, oni content_type
nie została właściwie zapisane i dostałam django.db.utils.IntegrityError: null value in column "content_type_id" violates not-null constraint
Każdy pomysł jak prawidłowo utworzyć model z ogólnym kluczem obcym w migracji? Lub jakiekolwiek obejście?
można wkleić modeli? Co najmniej odpowiedni bit? Występuję w tej samej sytuacji, próbując utworzyć prosty model, który jest celem pola M2M. Sam model nie ma pola relacji. – tutuca