我想創建兩個用戶;顧客和餐館。我使用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信號。我會在一分鐘內回答我的答案。 –