Ich möchte eine Datenmigration durchführen, um einen Benutzerleseeintrag in der Datenbank hinzuzufügen. Es gibt einen solchen Code:Warum GenericRelation-Felder in Datenmigrationen nicht funktionieren (Django)
def user_read_posts(apps, schema_editor):
User = apps.get_model("main", "User")
Post = apps.get_model("main", "Post")
Comment = apps.get_model("comments", "Comment")
comments = Comment.objects.all()
for comment in comments:
print (comment.content_object.__class__.__name__)
if isinstance(comment.content_object, Post):
comment.user.read_posts.add(comment.content_object)
class Migration(migrations.Migration):
dependencies = [
('main', '0039_auto_20160314_0906'),
]
operations = [
migrations.RunPython(user_read_posts),
]
Und in Zeile print (comment.content_object.__class__.__name__)
django Fehler aus: AttributeError: 'Comment' object has no attribute 'content_object'
Kommentar Modell:
class GuidaComment(GenericRelationModel):
user = models.ForeignKey(GuidaUser)
text = models.TextField()
Also, was soll ich tun?
Danke.
Können Sie die Attribute der Klasse 'GenericRelationModel'? – ruddra
Ich benutze django generic_helpers app.As in docs: 'von generic_helpers.models Import GenericRelationModel 'Hier ist ein Modell Modul https://github.com/marazmiki/django-generic-helpers/blob/master/generic_helpers/models.py –
Erwägen Sie stattdessen die Verwendung dieses https://docs.djangoproject.com/en/1.9/ref/contrib/contenttypes/, da ich sehen kann, dass das Paket seit fast einem Jahr nicht mehr aktualisiert wurde. – ruddra