Change models inheritance, use abstract Object model. This make us to use additional object_type field in Comment model.
Change models inheritance, use abstract Object model. This make us to use additional object_type field in Comment model.
diff --git a/mgmt/models.py b/mgmt/models.py
index f09f103..24f28fa 100644
--- a/mgmt/models.py
+++ b/mgmt/models.py
@@ -5,6 +5,8 @@ class Object(models.Model):
name = models.CharField(max_length=64)
text = models.TextField()
created = models.DateTimeField()
+ class Meta:
+ abstract = True
def __unicode__(self):
return self.name
@@ -42,7 +44,8 @@ class Document(Object):
class Comment(models.Model):
author = models.ForeignKey(User)
created = models.DateTimeField()
- object = models.ForeignKey(Object)
+ object_id = models.IntegerField()
+ object_type = models.CharField(max_length=10)
title = models.CharField(max_length=64,null=True)
text = models.TextField()
class Admin:
diff --git a/mgmt/views.py b/mgmt/views.py
index df388c9..ca9f8a6 100644
--- a/mgmt/views.py
+++ b/mgmt/views.py
@@ -45,11 +45,12 @@ def one_project(request,id):
text = request.POST['text']
c = Comment(created=datetime.now(),
author = request.user,
- object = project,
+ object_id = project.id,
+ object_type = 'Project',
title = title,
text = text)
c.save()
- comments = Comment.objects.filter(object=project)
+ comments = Comment.objects.filter(object_id=project.id,object_type='Project')
if can(request.user,'comment'):
form = CommentForm()
else:
@@ -98,11 +99,12 @@ def one_document(request,id):
text = request.POST['text']
c = Comment(created=datetime.now(),
author = request.user,
- object = doc,
+ object_id = doc.id,
+ object_type = 'Document',
title = title,
text = text)
c.save()
- comments = Comment.objects.filter(object=doc)
+ comments = Comment.objects.filter(object_id=doc.id,object_type='Document')
if can(request.user,'comment'):
form = CommentForm()
else: