{{{
class Attempt(models.Model):
student = models.ForeignKey(Student, models.CASCADE,
related_name='quiz_attempts',null=False)
quiz =
models.ForeignKey(Quiz,on_delete=models.CASCADE,related_name='quiz_attempts')
score = models.FloatField()
over = models.BooleanField(default=False)
date = models.DateTimeField(auto_now_add=True)
currquestion =
models.ForeignKey(Question,null=True,default=None,on_delete=models.SET_NULL)
class Meta:
indexes = [
models.Index(fields=['student']),
models.Index(fields=['quiz']),
]
}}}
Table created in MySql:
{{{
CREATE TABLE `classroom_attempt` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`score` double NOT NULL,
`over` tinyint(1) NOT NULL,
`date` datetime(6) NOT NULL,
`currquestion_id` int(11) DEFAULT NULL,
`quiz_id` int(11) NOT NULL,
`student_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `classroom_a_student_1a21bc_idx` (`student_id`),
KEY `classroom_a_quiz_id_eef64a_idx` (`quiz_id`),
KEY `classroom_attempt_currquestion_id_545301ef_fk_classroom`
(`currquestion_id`),
CONSTRAINT `classroom_attempt_currquestion_id_545301ef_fk_classroom`
FOREIGN KEY (`currquestion_id`) REFERENCES `classroom_question` (`id`),
CONSTRAINT `classroom_attempt_quiz_id_e227b203_fk_classroom_quiz_id`
FOREIGN KEY (`quiz_id`) REFERENCES `classroom_quiz` (`id`),
CONSTRAINT `classroom_attempt_student_id_a4dc81cd_fk_classroom` FOREIGN
KEY (`student_id`) REFERENCES `classroom_student` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------------------+---------------------
}}}
As you can notice, indexes and models.CASCADE is not applied.
--
Ticket URL: <https://code.djangoproject.com/ticket/30524>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* keywords: Foreign Key, indexes => Foreign Key
Old description:
New description:
Model:
}}}
Table created in MySql:
As you can notice models.CASCADE is not applied.
--
--
Ticket URL: <https://code.djangoproject.com/ticket/30524#comment:1>
* status: new => closed
* resolution: => invalid
Comment:
Django doesn't support database level foreign keys yet, this is tracked in
#11964.
The `models.CASCADE` value implements cascade deletion at the
application/Python level in order to support signals.
--
Ticket URL: <https://code.djangoproject.com/ticket/30524#comment:2>