Django загрузить модель Foreignkey - PullRequest
0 голосов
/ 07 марта 2012

Привет, я относительно новичок в Джанго. Я создаю приложение, которое позволяет пользователям загружать изображения галереи:

важная часть моих моделей выглядит так:

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))

дополнительные почтовые данные (loc / date) отправляются через uploadify. Все работает нормально, но когда я пытаюсь сохранить модель "Гал", это не работает. Если я проверю это с моделью местоположения вместо модели галереи, это работает. Если я удаляю внешний ключ из модели галереи, он также работает, поэтому, похоже, проблема с полем внешнего ключа. Надеюсь, у одного из вас, ребята, есть решение для этого.

1 Ответ

0 голосов
/ 07 марта 2012

Используйте

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

вместо

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

Похоже, вы запутались в поле location_id, которое на самом деле не ID, а объект.

...