我开始学习Django,在我的模型中有一个名为Customer
的类
class Customer(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE,
primary_key=True)
cart = models.ManyToManyField(Product)
orders = models.ManyToManyField(Order)
def __init__(self, user):
self.user = user
我正在导入django.contrib.auth
以将用户注册到数据库,但我还希望在注册时初始化Customer
对象
我第一次尝试从UserCreationForm
和initialize
中重写save()
方法Customer
对象:
class UserCreationForm(forms.ModelForm):
def save(self, commit=True):
user = super(UserCreationForm, self).save(commit=False)
user.set_password(self.cleaned_data["password1"])
customer = Customer(user)
customer.save()
if commit:
user.save()
return user
但它似乎没有创建Customer
对象
或者,扩展User
类以具有Customer
类字段更好吗?我最初认为应该将身份验证分开,这就是我创建Customer
类的原因
如果您创建了一个信号,可能会更好
在apps.py中,导入信号以运行它
相关问题 更多 >
编程相关推荐