2016-04-12 19 views
2

Ben getirmesini istiyorsan tablolar ve her iki tablo Projesi'nden ekran ayrıntıları (name_project, user_name) ve Kullanıcı1 veri almakDjango models.py</p> <p>birden

class Project(models.Model): 
    name_project = models.CharField(max_length=50) 
    leader = models.ForeignKey('User1', default='') 
    category_project = models.CharField(max_length=50) 
class User1(models.Model): 
    user_name = models.CharField(max_length=30) 
    mail = models.EmailField(max_length=50) 
    password = models.CharField(max_length=50) 

views.py

def list_project(request): 
queryset = Project.objects.raw(
    'SELECT scrum_rest_project.id, scrum_rest_project.name_project, scrum_rest_user1.user_name FROM scrum_rest_user1,scrum_rest_project WHERE scrum_rest_user1.id = scrum_rest_project.leader_id') 
queryset = serializers.serialize('json', queryset) 
return HttpResponse(queryset, content_type="application/json") 

ancak yalnızca json dosyasındaki Project tablosundaki verileri görüntüler, Kullanıcı1 tablosundaki verileri görüntülemek istiyorum

+1

usind sql olan büyük bir "hayır" ise, gerçekten iyi bir nedeniniz varsa hariç. Django'nun ORM'sini kullan – pleasedontbelong

cevap

1

? Querysets'u öğrenin.
1. Kullanarak Sorgu kümelerini:

projects = Project.objects.select_related('leader').all() 
for project in projects: 
    print project.name, project.leader.user_name 

Not: User1 modeli erişirken select_relatedUser1 ile bir bağlantı oluşturur ve ekstra SQL sorguları kaydeder

2. liderin sadece listesini almak ve proje Adı. django üzerinde böyle

project_list = Project.objects.select_related('leader')\ 
           .values_list('name', 'leader__user_name') 
İlgili konular