嗨,我对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”时,它不起作用。如果我使用位置模型而不是库模型测试它,它可以工作。如果我从库模型中删除外键它也可以工作,所以它似乎是外键字段的问题。我希望你们其中一个人有解决方案。
答案 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而是对象。