#python #django
#python #django
Вопрос:
Я использую django и сейчас испытываю некоторую путаницу. Я хочу создать что-то, где таблица teachers будет находиться в отношениях onetomany с таблицей students. Но я не смог создать другую таблицу student. Любой совет или ресурс, пожалуйста?
Комментарии:
1. Что значит «не удалось создать другую таблицу студентов»? Вы не можете создать модель Student, вы не уверены, как использовать ForeignKeys, или вы сталкиваетесь с ошибками?
2. @Stevy в django есть таблица пользователей по умолчанию, которую я сейчас использую, и я буду называть ее таблицей учителей. Я просто хочу создать другую таблицу под названием student table. Надеюсь, вы не поняли 🙂
3. Учащиеся будут входить в систему, используя свои учетные данные, полученные из этой таблицы
Ответ №1:
Я не уверен, в чем именно заключается ваш вопрос, но для создания таблиц / моделей, в которых у преподавателя есть один или несколько учеников, вы можете создавать свои модели следующим образом:
from django.db import models
import uuid
class Teacher(models.Model):
teacher_uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False, db_index=True)
name = models.CharField(max_length=255)
users = models.ManyToManyField('auth.User', related_name='teachers')
def __str__(self):
return self.name
class Meta:
db_table = 'teacher'
class Student(models.Model):
student_uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False, db_index=True)
teacher = models.ForeignKey(Teacher, on_delete=models.CASCADE, related_name='students')
name = models.CharField(max_length=255)
def __str__(self):
return self.name
class Meta:
db_table = 'student'
Комментарии:
1. Большое вам спасибо за ответ. Я знаю, что не очень хорошо это объяснил, приношу свои извинения. Но я просто хочу другую таблицу, в которой я мог бы сохранить имя пользователя студента, адрес электронной почты, хэшированные пароли, как в пользовательской модели по умолчанию. Вот и все
Ответ №2:
Просто попробуйте использовать внешние ключи. Отношений «Один ко многим» в Django не существует. Вы можете выбрать внешние ключи, которые помогут вам решить проблему.
Файл модели учителя
class TeacherModel(model.Models):
...
student_id = models.ForeignKey('Student', related_name='students_id')
...