我想创建两个用户;顾客和餐馆。我使用OneToOneField将它们与Django User模型关联起来。我很困惑我应该如何去创建特定类型的用户。当我创建用户时,我该如何区分哪些是客户,哪些是餐厅?这是我迄今,似乎工作,但不觉得它是很优雅..如何创建/注册不同的用户类型
models.py
class Restaurant(models.Model):
restaurant_user = models.OneToOneField(User, on_delete=models.CASCADE)
restaurant_name = models.TextField(max_length=50)
about = models.CharField(max_length=500)
class Customer(models.Model):
customer_user = models.OneToOneField(User, on_delete=models.CASCADE)
about = models.CharField(max_length=500)
views.py
def signup_customer(request):
if request.method == 'POST':
form = SignupForm(request.POST)
if form.is_valid():
first_name = request.POST['first_name']
last_name = request.POST['last_name']
username = request.POST['username']
password = request.POST['password']
email = request.POST['email']
#TO DO CHECK IF IT ALREADY EXISTS
user1 = User.objects.create_user(username=username, password=password,
email=email)
user1.save()
user = Customer(customer_user=user1)
login(request, user1)
return redirect('dashboard')
正确的,但这是去保存不同类型的用户以正确的方式? – ratrace123
它没有任何明显的错误。尽管如此,还是有更好的方法。但是这涉及阅读文档。尽管看起来你没有使用从request.POST中提取的任何附加信息。 –
你可以做的是创建一个post_save信号。我会在一分钟内回答我的答案。 –