Çok fazla arama yaptıktan sonra, ilişkili model verilerini görünüm olarak almak için uygun bir çözüm bulamadım.Django 1.6.x'te, ilişkili modellerin görünümlerindeki görünümleri nasıl edinilir?
Ajax üzerinden sunucuya birşeyler sormak ve klasörleri ve klasör yaratıcısı adını (Kullanıcı modelinden) almak istiyorum. Ama bana, içerik oluşturucunun ilk adını vermedi. Burada da kod
ben .select_related ('yaratıcısı') denedi
class UserFolder(models.Model):
creator = models.ForeignKey(User)
name = models.CharField(blank=False, max_length=150)
is_shared = models.BooleanField(default=False)
created_date = models.DateTimeField(auto_now_add=True)
modified_date = models.DateTimeField(auto_now=True)
def __str__(self):
return self.name
views.py
def pagination(obj, request):
max = request.GET.get('max') if 'max' in request.GET else 1
paginator = Paginator(obj, max) # Show 25 contacts per page
page = request.GET.get('page')
try:
return paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
return paginator.page(1)
except EmptyPage:
return ""
def folder_list(request): #called via ajax
folders = UserFolder.objects.filter(creator=request.user.id).order_by('-modified_date')
folders = pagination(folders, request) #for pagination
folders = json.dumps({}) if not folders else serializers.serialize("json", folders)
return HttpResponse(folders)
models.py ama o in iş. js ise
böyle veriler alınırken ediyorum:
$.each(data, function(i, v) {
var t = fldrTpl, id = v.pk;
v = v.fields
t = t.replace(/\{(ID)\}/g, id);
t = t.replace(/\{(NAME)\}/g, v.name);
t = t.replace(/\{(C_SIZE)\}/g, (v.current_size == null?0:v.current_size));
t = t.replace(/\{(C_ID)\}/g, v.creator.first_name);
t = t.replace(/\{(C_DATE)\}/g, v.created_date);
$(".my-folder-table").append(t);
});
v.creator.first_name daima tanımsız dönün.
Herhangi bir yardım gerçekten takdir edilecektir.
Teşekkür
daima size istemci tarafında kullanmak istediğiniz veri sözlüğü oluşturabilirsiniz
:
Ve js folders = userFolder.objects.filter (creator = request.user) request.user.id yerine. request.user bir kullanıcı örneğidir. – user2707389
Yorumunuz için teşekkürler Ama bunu da denedim ve bu da işe yaramadı. Yalnızca UserFolders alanlarını döndürür. –
Kullanıcı modelinde first_name girişini test ettiniz ve kullanıcı modeli detaylarını da bize verdiniz. –