編輯:我使用Django dev版本,所以我可以訪問JsonResponse(如下所示)。Django和AngularJS - 將查詢JSON數據發送到Angular
我搞砸了Django並試圖使它與AngularJS一起工作。目前我試圖從數據庫中一次查詢4行,並將結果作爲JSON對象發送給Angular腳本。我只是不斷遇到問題 - 它不會工作。
這裏就是我的代碼是在現在一堆搜索在計算器上對自己儘量幫助出後:
# views.py
class AJAXListMixin(object):
def dispatch(self, request, *args, **kwargs):
if not request.is_ajax():
raise Http404("Improper access.")
return super(object, self).dispatch(request, *args, **kwargs)
def get_queryset(self):
return Project.objects.filter(added__lte=timezone.now())
def get(self, request, *args, **kwargs):
return JsonResponse(self.get_queryset(), safe=False)
class PageApi(AJAXListMixin, generic.ListView):
paginate_by = 4 # 4 results per page
ordering = '-added' # Most recent to oldest
----------------------
# models.py
class Project(models.Model):
title = models.CharField(max_length=100)
desc = models.TextField()
link = models.URLField(default=None, blank=True, null=True)
slug = models.SlugField(null=True)
added = models.DateField(_("Date Added"), default=datetime.today)
def __str__(self):
return self.title
def save(self, *args, **kwargs):
self.slug = slugify(self.title)
super(Project, self).save(*args, **kwargs)
def as_dict(self):
return {
"title": self.title,
"description": self.desc,
"link": self.link,
"slug": self.slug,
"date": self.added,
"previews": {
preview.as_dict() for preview in self.preview_set.all()
}
}
class Preview(models.Model):
project = models.ForeignKey(Project)
file = models.FileField(upload_to='project/preview/')
def __str__(self):
return "{project} Preview {id}".format(
project=self.project.title, id=self.id
)
def as_dict(self):
return {
"url": self.file.url
}
這裏是角碼我開始了與:
projects = angular.module("Projects", []);
projects.config(['$httpProvider', function ($httpProvider) {
$httpProvider.defaults.headers.common["X-Requested-With"] = "XMLHttpRequest";
}]);
projects.controller("ProjectList", ['$scope', '$http', function ($scope, $http) {
$scope.projects = {};
$scope.page = 1;
$http.get('api/page/' + $scope.page)
.success(function (response) {
console.log(response)
})
.error(function (status) {
alert("Error. Check network logs.");
});
}]);
我想將響應存儲在項目$ scope變量中,以便我可以對角模板中的數據執行操作。
如何創建我的序列化程序以訪問我想要的預覽圖像,我有點遺憾。我目前沒有一個url路徑來查看與它們關聯的項目分開的預覽圖像。有沒有一種方法可以設置序列化程序來獲取圖像的URL而無需設置路線?請參閱http://pastebin.com/AaVzGyer – Mephoros 2014-12-04 03:38:05
預覽如何與項目關聯? – Snig501 2014-12-04 07:37:47
項目有一個或多個預覽圖像。每個圖像(預覽)是來自項目條目上管理界面的單一上傳。 – Mephoros 2014-12-04 08:28:48