2016-05-29 12 views
0

Ich bekomme wiederholte Ergebnisse von meinen Abfragen. Es gibt nur wenige meiner Ergebnisse, die wiederholt werden. Ich benutze Django 1.8 und SQLite als meine Datenbank. Die wiederholten Ergebnisse scheinen die gleiche Eingangs-ID # 4 und ID # 14 zu sein. Ich habe mit einem SQL-Lite-Browser überprüft und bestätigt, dass es nur einen Eintrag für jede ID gibt. Ich benutze auch django_tables2.django wiederholte Daten manchmal

Hier mein models.py ist:

@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) 

Hier mein table.py ist

class ProjectTable(tables.Table): 
    class Meta: 
     model = Project 
     exclude = ('shopOut', 'shopIn', 'delivery', 'job1', 'job2', 'job3', 'created_by', 'modified_by', 'modified_date') 
     attrs = {"class": "paleblue"} 

mein Hier views.py ist

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}) 

Hier ist meine index.html :

{% block content %} 
    <h1>Projects</h1> 
    {% render_table table %} 
{% endblock %} 

Bitte lassen Sie mich wissen, wenn weitere Informationen benötigt werden. Wie entferne ich die wiederholten Einträge in meiner Abfrage?

Antwort

1

Aktualisiert

Wenn Sie wirklich sicher sind, dass Ihre Daten gültig sind, als only auf Ihren Anfrag telefonisch soll dieses Problem zu beheben. Ich denke, das Problem ist, dass Sie eine Liste von Dicts nach dem Aufruf values auf Queryset geben, aber Sie müssen ein Abfrage-Set für ProjectTable bereitstellen.

model = Project.objects.only("id","name","jobNumber", "contractor", "assigned_to", "created_date").distinct() 
+0

Sorry, immer noch kein Glück mit dieser Änderung. – user908759

+1

@ user908759 Versuchen Sie, 'only' anstatt' values' aufzurufen. 'model = Project.objects.only (" id "," Name "," jobNumber "," Auftragnehmer "," assigned_to "," created_date "). distinct()' https://docs.djangoproject.com/de/ 1.9/ref/models/queriesets/# nur –

+0

Das funktioniert! ändere deine Antwort und ich werde dir Kredit geben. – user908759

Verwandte Themen