Я работаю над проектом, который должен обрабатывать два типа пользователей.нормальные пользователи и учителя.
Я создал одну основную модель.на самом деле я расширил встроенную модель AbstractUser django и добавил в нее некоторые другие поля.одним из дополнительных полей является is_teacher, которое является BooleanField, и по умолчанию установлено значение False.для регистрации пользователей я создал ModelForm из модели User, которую я расширил ранее.и во время регистрации я установил значение по умолчанию для is_teacher = False, чтобы указать, что этот пользователь является обычным пользователем.и для учителей регистрация is_teacher = True.Это нормально как для пользователей, так и для учителей, которые входят в систему и перенаправляют их на свою панель.но проблема наступит после этого.Мне нужна третья модель для чего-то еще.Мне нужно иметь поле ManyToMany в третьей модели с НОРМАЛЬНЫМИ пользователями и УЧИТЕЛЯМИ;оба из них, но у меня есть только одна модель.на самом деле я не отделял модели пользователей и учителей друг от друга.из-за этого я не знаю, как указать отношение ManyToMany с моделью пользователей и отношение ManyToMany с учителями.Есть кое-что, что я могу сделать (возможно) - создать два типа моделей: один для пользователей, другой для учителей, и в отношении этих двух моделей мне нужно создать две страницы входа, два профиля и две регистрации, а затем, возможно, я смогу создать третью.модель, как я уже говорил.Вопрос в том, правда ли иметь две модели: одну для пользователей, а другую для учителей ...?Есть ли какое-нибудь решение кроме этого.Я новичок в django. Объясните это ясно, пожалуйста.
Форма модели для 3rd_model:
class RequestForm(forms.ModelForm):
class Meta:
model = ThirdModel
fields = ("height", "age", "address")
widgets = {
"user": "hidden"
}
Просмотр для сохранения данных в ThirdModel:
@login_required
def request_plan(request):
form = RequestForm(request.POST or None)
if form.is_valid():
user = request.POST.get('username')
form.save(commit=False)
form.save()
context = {
"request_form": form
}
return render(request, "plan/request.html", context)
class User(AbstractUser):
SEX_CHOICES = (
("male", "Male"),
("female", "Female")
)
sex = models.CharField(max_length=6, choices=SEX_CHOICES)
bio = models.CharField(max_length=100)
is_coach = models.BooleanField(max_length=100, default=False)