,可以通过以下步骤实现:
from django import forms
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
import random
class CustomUserCreationForm(UserCreationForm):
class Meta:
model = User
fields = ('username', 'password1', 'password2')
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['username'].widget.attrs.update({'class': 'form-control'})
self.fields['password1'].widget.attrs.update({'class': 'form-control'})
self.fields['password2'].widget.attrs.update({'class': 'form-control'})
def save(self, commit=True):
user = super().save(commit=False)
user.set_password(self.cleaned_data['password1'])
user.avatar = self.generate_random_avatar() # 生成随机头像并保存到用户的avatar字段
if commit:
user.save()
return user
def generate_random_avatar(self):
# 实现随机头像生成逻辑,可以使用第三方库如Pillow
# 这里简化为返回一个随机数作为头像
return random.randint(1, 10)
from django.shortcuts import render, redirect
from .forms import CustomUserCreationForm
def register(request):
if request.method == 'POST':
form = CustomUserCreationForm(request.POST)
if form.is_valid():
form.save()
return redirect('login')
else:
form = CustomUserCreationForm()
return render(request, 'registration/register.html', {'form': form})
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">注册</button>
</form>
这样,在用户注册时,UserCreationForm将会调用我们自定义的save方法,生成一个随机头像并保存到用户的avatar字段中。你可以根据实际需求修改随机头像生成的逻辑,并在模板中适当地显示用户的头像。
领取专属 10元无门槛券
手把手带您无忧上云