从db django获取姓氏

时间:2014-05-04 13:01:51

标签: android python django

我是django的新手,我使用tastypie在django中创建了一个web服务。我从我的Android应用程序发送图像,它保存在必需的文件夹中。我想获取将用户发送到我的api的图像名称。我尝试了这段代码,但我从db得到了第二个姓。我想获取用户刚刚发送的图像的姓氏,因为我必须进行处理并将响应发送回用户

这是我的模特

from django.db import models
from PIL import Image

class Foo(models.Model):
    img = models.ImageField(upload_to="images/", null=True, blank=True)

这是我的api.py

from tastypie.resources import ModelResource
from tastypie.constants import ALL
from tastypie import fields
from tastypie.authorization import Authorization
from models import Foo
from article import forms


class MultipartResource(object):
    def deserialize(self, request, data, format=None):
        if not format:
            format = request.META.get('CONTENT_TYPE', 'application/json')
        if format == 'application/x-www-form-urlencoded':
            return request.POST
        if format.startswith('multipart'):
            data = request.POST.copy()
            data.update(request.FILES)
            return data
        return super(MultipartResource, self).deserialize(request, data, format)


class FooResource(MultipartResource,ModelResource):
    img = fields.FileField(attribute="img", null=True, blank=True)

    class Meta:
        queryset = Foo.objects.all()
        resource_name = 'article'
        authorization = Authorization()

    obj=Foo.objects.latest('id')
    lastid=obj.pk
    imagename=Foo.objects.get(id=lastid)         
    print imagename                

1 个答案:

答案 0 :(得分:0)

这个回答是警告,我不知道什么是tastypie,它可能做了一些奇怪的事情。

latest()旨在用于日期,而不是整数。它通过您指定的日期字段获取最新条目。 id不是日期字段。而不是Foo.objects.latest('id')你可以尝试Foo.objects.last()这可能适合你,但不能保证。

解决此问题的最佳方法是在模型中添加DateFieldDateTimeField,以节省创建图像的时间。您可以使用auto_now_add自动执行此操作。所以在你的模型中:

class Foo(models.Model):
    img = models.ImageField(upload_to="images/", blank=True)
    creation_date = models.DateTimeField(auto_now_add=True)

请注意img不应该有null=True,因为它实际上是CharField。

然后你可以这样做:

obj = Foo.objects.latest('creation_date')