Ich erstelle ein Modell für Multiple-Choice-Frage. Jede Frage hat 5 Wahl von Antworten. Und ich brauche jedes Frageobjekt, das auf seiner Frage und Antworten einzigartig ist. Und so entwerfe ich das Modell so.Gibt es sowieso eine eindeutige TextField in Django mit MySQL-DB-Backend zu erstellen?
from django.db import models
class MultipleChoiceQuestion(models.Model):
ANSWERS = [('a', 'a'), ('b', 'b'), ('c', 'c'), ('d', 'd'), ('e', 'e')]
question = models.TextField()
a = models.TextField()
b = models.TextField()
c = models.TextField()
d = models.TextField()
e = models.TextField()
true_answer = models.CharField(max_length=1, choices=ANSWERS)
class Meta:
unique_together = [('question', 'a', 'b', 'c', 'd', 'e')]
Wenn ich migrate
laufen, mysql diesen Fehler geben:
1170, "BLOB/TEXT column 'question' used in key specification without a key length"
ich diesen Fehler gefunden hat here diskutiert. Aber ich kann 10 mit seinem kleinen Limit nicht verwenden, weil ich langen Text (bis 10000 Zeichen oder mehr) speichern muss.
sqlite3 und postgresql können dies tun (ich meine, django hat sich nicht über Schlüsselspezifikation für TEXT
beschweren).
Der Grund, warum ich mysql verwenden muss, da der Server, auf dem ich diese django-Anwendung bereitstellen wird, nur mysql, keine postgresql bereitstellt.
Also, kann ich das irgendwie erreichen?
So hilfreich! Vielen Dank – fpghost