Автозаполнение моделей Django

Самый простой способ, о котором я могу думать, заключается в следующем: просто найдите среднее значение координат массовых компонентов, взвешенных по вкладу каждого компонента.

import numpy
masses = numpy.array([[0,  0,  0,  0],
[0,  1,  0,  0],
[0,  2,  0,  0],
[1,  0,  0,  0],
[1,  1,  0,  1],
[1,  2,  0,  1],
[2,  0,  0,  0],
[2,  1,  0,  0],
[2,  2,  0,  0]])

nonZeroMasses = masses[numpy.nonzero(masses[:,3])] # Not really necessary, can just use masses because 0 mass used as weight will work just fine.

CM = numpy.average(nonZeroMasses[:,:3], axis=0, weights=nonZeroMasses[:,3])
0
задан Dev Pahuja 13 July 2018 в 18:24
поделиться

1 ответ

Использовать ManyToManyField

class Student(models.Model):
    name = models.CharField(...)
    attendance = models.ManyToMany(Subject)    

class Subject(models.Model):
    subject = models.CharField(...)

Это будет так

id   |    student_id   |  subjects_id
-----------------------------------------
1    |    1            |  10
2    |    4            |  11
3    |    4            |  19
4    |    5            |  10
...
~1000

У каждого ученика будет несколько объектов ... в то время как несколько предметов могут быть у моих учеников

Obs .: Обычно я хотел бы назвать мои отношения ManyToMany именем второй таблицы во множественном числе ... так что предметы

Использование:

all_students = Student.objects.all()
all_subjects = Subject.objects.all()
all_subjects_from_student = Student.objects.get(id=1).attendance.all()

Как я могу отметить посещаемость конкретного ученика для конкретного предмета?

particular_student = Student.objects.get(id=1) # When 1 is the student ID
particular_subject_of_student = particular_student.filter(id=1) # When 1 is the subject ID

https://docs.djangoproject.com/en/2.0/topics/db/ Примеры / many_to_many /

EDIT Вы можете сделать это тоже без использования ManyToMany, если вам нужно какое-либо новое поле в Attendance

class Student(models.Model):
    name = models.CharField(...)

class Subject(models.Model):
    subject = models.CharField(...)

class Attendance(Student, Subject):
    att = models.IntegerField()
    subject = models.ForeignKey(Subject)
    student = models.ForeignKey(Student)
    ... # You can add more fields if you like

. Возьмем один такой вопрос, как ваш: django доступ к сырым многим во многие созданные поля таблицы

0
ответ дан Diego Vinícius 17 August 2018 в 12:16
поделиться
  • 1
    Как я могу отметить посещаемость конкретного ученика для конкретного предмета? – Dev Pahuja 13 July 2018 в 18:45
  • 2
    Ответьте мне что-то ... Посещаемость - это отношение 1 или многих предметов к каждому ученику? – Diego Vinícius 13 July 2018 в 18:47
  • 3
    – Dev Pahuja 13 July 2018 в 18:50
  • 4
    Эти предметы могут быть использованы для многих студентов? или каждый предмет может находиться только на одном ученике? – Diego Vinícius 13 July 2018 в 18:52
  • 5
    Субъекты могут использоваться для многих студентов. – Dev Pahuja 13 July 2018 в 18:55
Другие вопросы по тегам:

Похожие вопросы: