WICHTIG: Diese Frage ist nicht mehr relevant.Erstellen einer Instanz eines Modells mit GenericForeignKey bei der Migration
In einer Migration Django 1.7 Ich versuche Kommentar Einträge programmatisch mit dem folgenden Code zu erstellen:
# -*- 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),
]
Und es erzeugt einen Fehler: TypeError: 'content_object' is an invalid keyword argument for this function
jedoch den gleichen Code (dh Comment(content_object=comment.booking)
) funktioniert, wenn in der Shell ausgeführt wird.
Ich habe versucht, ein leeres Modell mit new = Comment()
zu erstellen und dann alle notwendigen Felder manuell einstellen, aber auch wenn ich content_type
und object_pk
Felder entsprechend gesetzt, sie content_type
nicht tatsächlich gespeichert wurde, und ich erhielt django.db.utils.IntegrityError: null value in column "content_type_id" violates not-null constraint
Jede Idee, wie man Erstellen Sie ordnungsgemäß ein Modell mit einem generischen Fremdschlüssel in einer Migration? Oder irgendeine Abhilfe?
Können Sie die Modelle einfügen? Zumindest das relevante Bit? Ich stoße in die gleiche Situation, versuche ein einfaches Modell zu erstellen, das das Ziel eines M2M-Feldes ist. Das Modell selbst hat kein Beziehungsfeld. – tutuca