[Answer]-Django custom registration: how to set a default password and use first name + last name as username

1👍

One way to do this would be to override the clean method to set the username field until found. This might not be the exact code you need, but you get the idea.

class patientForm(forms.ModelForm):

    class Meta:
        model = MyUser
        fields = ('username', 'first_name', 'last_name')

    def clean(self):
        cd = self.cleaned_data
        fullname = "%s-%s" % (cd.get('first_name'), cd.get('last_name'))
        username = slugify(fullname)

        while True:
            try:
                user = User.objects.get(username=username)
            except:
                username = username + '-copy' #Or changes this to a counter.
            else: 
                break


        cd['username'] = fullname
        return cd

Leave a comment