2016-09-13 4 views
0

私は2つのアプリ "答え"と "タスク"を持っていると私は "タスク"モデルから収益とタイトルの列を選択したいanswer.accept_answer='T';私は実装したいクエリは次のとおりです。djangoでのクエリの実装:select title、answer.title == task.titleとanswer.title == 'T';

select title, earning from task where answer.title==task.title and answer.title=='T'; 

task.models:

class Task(models.Model): 

    title = models.CharField(max_length=200) 
    body = models.TextField(max_length=1000) 
    earning = models.DecimalField(max_digits=6 , decimal_places=2) 


    def __str__(self): 
     return self.title 

    def __unicode__(self): 
     return self.title 

answer.models:

class answers(models.Model): 
    username = models.ForeignKey(settings.AUTH_USER_MODEL) 
    title = models.ForeignKey(Task) 
    answer = models.URLField() 
    ANSWER_CHOICES = (
     ('F', 'Declined'), 
     ('T', 'Accepted'), 
    ) 
    accept_answer = models.CharField(max_length=1, choices=ANSWER_CHOICES, default='f') 


    def __str__(self): 
     return self.answer 

    def __unicode__(self): 
     return self.answer 

答えて

0

だけでなく、私はそれを考え出したが、idont知っていますこの方法がより効率的であるかどうか。

views.py

def earning(request, username): 
    instance = Profile.objects.get(username= request.user) 
    context = {'profile':instance} 
    c={} 
    if instance.total_earning: 
     t_m = answers.objects.filter(accept_answer = 'T', username = request.user) 
     for t in t_m: 
      m = Task.objects.get(title = t.title) 
      c.update({'title':m.title,'earning':m.earning}) 


     context.update(c) 
    else: 
     context.update({'no':"no task completed"}) 
    print(context) 

    return render(request, "earning.html", context) 
関連する問題