#python #django #django-models
#питон #джанго #джанго-модели
Вопрос:
Я пытаюсь запросить поля из другой модели в Django . Я могу получить информацию о пользователе, используя следующий метод
def student(self, *args, **kwargs): std_name = Attendance.objects.get(roll=self.roll) return std_name.name
Теперь мне нужно найти назначенного учеником учителя из другой таблицы, мне нужно извлечь его только с использованием имени ученика, которое я получил с помощью функции student (), поскольку в моей текущей таблице нет переменной, на которую можно ссылаться, чтобы извлечь эту информацию из новой таблицы.
def teacher(self, *args, **kwargs): teacher_name = staff.objects.get(student=self.student) return teacher_name.name
Но приведенный выше метод работает неправильно и не заполняет поля в моем admin.py страница . Может ли кто-нибудь помочь мне в устранении этой проблемы
#Модель посещаемости
class Attendance(models.Model): class Meta: verbose_name = 'Attendance' verbose_name_plural = ''Attendance'' Group = models.TextField(max_length=15, blank=True, null=True) Year = models.IntegerField(blank=True,null=True) roll = models.IntegerField(blank=True,null=True) Date = models.TextField(max_length=15, blank=True, null=True) name = models.TextField(max_length=10, blank=True, null=True) Presence = models.TextField(max_length=15, blank=True, null=True) def student(self, *args, **kwargs): std_name = Attendance.objects.get(roll=self.roll) return std_name.name def teacher(self, *args, **kwargs): teacher_name = staff.objects.get(student=self.student) return teacher_name.name
#модель персонала
class staff(models.Model): class Meta: verbose_name = staff verbose_name_plural = ''staff'' name = models.TextField(max_length=10, blank=True, null=True) degree = models.TextField(max_length=15, blank=True, null=True) subject = models.IntegerField(blank=True,null=True) experience = models.IntegerField(blank=True,null=True) student = models.TextField(max_length=15, blank=True, null=True)
Комментарии:
1. Пожалуйста, поделитесь своими моделями…
2. отредактировал код