Reputation: 1355
I am getting repeated results from my queries. There are only a few of my results that are being repeated. I am using django 1.8 and sqlite as my database. The repeated results seem to be the same entry id #4 and id #14. I have checked with an sql lite browser and confirmed that there is only one entry for each ID. I am also using django_tables2.
Here is my models.py:
@python_2_unicode_compatible # only if you need to support Python 2
class Project(models.Model):
name = models.CharField(max_length=50)
jobNumber = models.CharField(max_length=8)
shopOut = models.DateTimeField(null=True)
shopIn = models.DateTimeField(null=True)
delivery = models.DateTimeField(null=True)
job1 = models.CharField(max_length=50, null=True)
job2 = models.CharField(max_length=50, null=True)
job3 = models.CharField(max_length=50, null=True)
contractor = models.ForeignKey(Contractor, on_delete=models.CASCADE, default=101)
created_by = models.ForeignKey(User, related_name='Project_created_by')
created_date = models.DateTimeField(auto_now_add=True)
modified_by = models.ForeignKey(User, related_name='Project_modified_by')
modified_date = models.DateTimeField(auto_now=True)
assigned_to = models.ManyToManyField(User, related_name='Project_assigned_to')
def __str__(self):
return self.name
def save(self, *args, **kwargs):
if not self.id:
self.created_by = User.objects.get(id=1)
self.modified_by = User.objects.get(id=1)
super(Project, self).save(*args, **kwargs)
year = datetime.datetime.now().year
self.jobNumber = '{}{:04d}'.format(year, self.id)
self.modified_by = User.objects.get(id=1)
super(Project, self).save(*args, **kwargs)
Here is my table.py
class ProjectTable(tables.Table):
class Meta:
model = Project
exclude = ('shopOut', 'shopIn', 'delivery', 'job1', 'job2', 'job3', 'created_by', 'modified_by', 'modified_date')
attrs = {"class": "paleblue"}
Here is my views.py
def indexV(request):
model = Project.objects.values("id","name","jobNumber", "contractor", "assigned_to", "created_date")
table = ProjectTable(model)
RequestConfig(request).configure(table)
return render(request, 'project/index.html', {'table': table})
Here is my index.html:
{% block content %}
<h1>Projects</h1>
{% render_table table %}
{% endblock %}
Please let me know if there is any other info that is needed. How do I remove the repeated entries in my query?
Upvotes: 0
Views: 78
Reputation: 15390
Updated
If you really are sure that your data is valid, than calling only
on your query should fix this. I think the problem is that you are giving list of dicts after calling values
on queryset, but you need to provide a queryset to ProjectTable.
model = Project.objects.only("id","name","jobNumber", "contractor", "assigned_to", "created_date").distinct()
Upvotes: 1