Django uploadify Model Foreignkey

时间:2012-03-06 21:59:20

标签: django file-upload uploadify

嗨,我对Django比较新。我正在创建一个允许用户上传图像的应用程序:

我模型的重要部分如下:

class location(models.Model):
    name = models.CharField(max_length = 15)

class gallery(models.Model):
    location_id = models.ForeignKey(location)
    date = models.CharField(max_length = 15)

class Image(models.Model):
    location_id = models.ForeignKey(location)
    name = models.CharField(max_length=15)
    image = ImageField(upload_to='songs')

class AuthKey(models.Model):
    user = models.OneToOneField(User)
    key = models.CharField(max_length=60)

我的观点如下:

def myFileHandler(request):
    if request.method == 'POST':
        for field_name in request.FILES:
            loc = request.POST['location']
            date = request.POST['date']
            if location.objects.filter(name=str(loc)):
                for l in location.objects.filter(name=str(loc)):
                    id = l.id
            gal = gallery(location_id=1, date='12/23/2009')
            gal.save()
        return HttpResponse("ok", mimetype="text/plain")
    else:
        return render_to_response('gallery_upload.html', context_instance=RequestContext(request))

通过uploadify发送额外的帖子数据(loc / date)。一切正常,但当我试图保存模型“gal”时,它不起作用。如果我使用位置模型而不是库模型测试它,它可以工作。如果我从库模型中删除外键它也可以工作,所以它似乎是外键字段的问题。我希望你们其中一个人有解决方案。

1 个答案:

答案 0 :(得分:0)

使用

gal = Gallery.objects.create(location=location, date='12/12/2012') 

而不是

gal = gallery(location_id=1, date='12/23/2009')
gal.save()

你似乎搞砸了location_id字段,这实际上并不是一个ID而是对象。