0

Models:

from django.db import models
class Image(models.Model):
    advertisement = models.ForeignKey('Advertisement')
    image = ImageWithThumbsField(upload_to=store_path, blank=True)

class Advertisement(models.Model):
    #some code here

class AdvertOne(Advertisement):
    #some code again

class AdvertTwo(Advertisement):
    #and again

Forms:

from models import Advertisement
from django.forms import *

class AdvertisementForm(ModelForm):
    message = CharField(max_length=400, widget=Textarea)
    image = ImageField(required=False)

Q: How should I form an upload view?

mktums
  • 426
  • 1
  • 4
  • 15

1 Answers1

0

Something like this should work. Make sure you inlcude enctype="multipart/form-data" in your form tag so the files get uploaded.

def upload_advertisement(request):
    if request.method == "POST":
        form =  AdvertisementForm(request.POST,request.FILES, prefix='advertisement')
        if form.is_valid():
            form.save()
            return HttpResponseRedirect("/")
    else:    
        form =  AdvertisementForm(prefix='advertisement')

    return render_to_response('advertisementform.html', {
        'form':form,
    }, context_instance=RequestContext(request))
scoopseven
  • 1,767
  • 3
  • 18
  • 27
  • should form.save() save an image from another model? – mktums Jun 16 '11 at 07:49
  • I think it would be better than getting/saving the related model in the view. At least in the form you can use it elsewhere and know that there's no need to repeat code in your view to save the image. – scoopseven Jul 09 '11 at 03:33