こんにちは私は比較的新しいDjangoです。私は、ユーザーがimagegallriesをアップロードすることを可能にするアプリケーションを、作成しています:DjangoアップロードモデルForeignkey
私のモデルの重要な部分は、次のようになります。
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))
追加:
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)
私の見解は次のようになります投稿データ(loc/date)はuploadifyを介して送信されます。すべて正常に動作しますが、モデル "gal"を保存しようとすると動作しません。私がギャラリーモデルではなくロケーションモデルでテストすれば、それは機能します。ギャラリーモデルから外部キーを削除しても機能するので、外部キーフィールドに問題があるようです。私は皆さんのうちの一人がこれを解決することを願っています。
まず、CamelCaseで常にクラスに名前を付けます。つまり、 'Location'ではなく' location'です。次に、外部キーに "foo_id"という名前を付けないでください。 Djangoは自動的にデータベースのフィールド名に "_id"を追加するので、実際は "foo_id_id"で終わります。 –