I am new to Django and python overall. The django experience thus far,
has been great -- immensely satisfying. The only regret I have is not
getting on the django bandwagon earlier.

Anyways, as I've been trying to code away, I hit a stumbling block
while using the newforms and imagefield. the django trunk has changed
quite a bit. and some of the examples I found on the web were using
the older versions of Django.

Here's my problem - I have a userprofile, which has an additional
avatar (ImageField) and a website (URLField). I created a
UserProfileManager as below:

{{ BEGIN CODE }}

<imports go here>

class UserProfileManager(models.Manager):

    def create_user(self, username, password, email, avatar, website):

        new_user = User.objects.create_user(username, email, password)
        new_user.save()

        registration_profile = self.create_profile(new_user, avatar,
website)

    def create_profile (self, new_user, avatar, website):
        return self.create(user=new_user, avatar=avatar,
website=website)


class UserProfile(models.Model):
    user = models.ForeignKey(User, unique=True)
    avatar = models.ImageField(upload_to="/pics/")
    website = models.CharField(maxlength=255)

    objects = UserProfileManager()

    class Meta:
        verbose_name = 'User Profile'


    class Admin:
        pass

    def __unicode__(self):
        return "User Profile for %s" % self.user


{{ THE FORM IS BELOW }}

class UserProfileForm(forms.Form):
    username = forms.CharField(maxlenght=30, label='Username')
    password1 =
forms.CharField(widget=forms.PasswordInput(render_value=False),label='Password')
    password2 =
forms.CharField(widget=forms.PasswordInput(render_value=False),label='Password
Again')
    email = forms.EmailField(label='Email')
    avatar = forms.ImageField(upload_to='/pics/')
    website = forms.URLField()

    def clean_username(self):
       if not alnum_re.search(self.cleaned_data['username']):
           raise forms.ValidationError('Username can contain only
alphanumeric')
       try:
           user =
User.objects.get(username__exact=self.cleaned_data['username'])
       except User.DoesNotExist:
           raise forms.ValidationError('Username already taken')

    def clean_avatar(self):

{{END FORM }}

{{BEGIN VIEW}}

def create(request):
    if request.method == 'POST':
        data = request.POST.copy()
        form = UserProfileForm(data, request.FILES)

        if form.is_valid():

{{ END VIEW }}

As you would have noticed above, the form, model and view are
incomplete. The reason is because I am not entirely sure on the 'best
practice' for handling the image data..

Based on my understanding, I have the following questions:

1) For the latest SVN Django version, the validation of imagefield
will be handled by django itself (Valid jpg / gif/bmp file)..is that
correct ?

2) The idea is that in the save method of the form, I will call the
UserProfileManager.objects.create_user() method.
Do, I need to pass the actual image as an argument to this method or
will django have  saved this filed already ?

IF I do need to pass the actual image (binary data) to the
create_user() method in the model manager, how does the model handle
saving the actual binary data and the filename

Where would i be using the save_FOO_File() and the get_FOO_size()
methods ?

3) Where should I do checking for the size of the file being
uploaded...I know it should go into the form..but any helper methods I
could use ?

Some of these questions may sound really dumb...but bear with me --
I'm still very new to django.

thanks,
-pranav.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to