Tôi tạo mô hình cho câu hỏi trắc nghiệm. Mỗi câu hỏi có 5 lựa chọn câu trả lời. Và tôi cần mỗi đối tượng câu hỏi là duy nhất dựa trên câu hỏi và câu trả lời của câu hỏi là . Và vì vậy, tôi thiết kế mô hình như thế này.Có anyway để tạo TextField độc đáo trong django với backend mysql db?
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')]
Khi tôi chạy migrate
, mysql cho lỗi này:
1170, "BLOB/TEXT column 'question' used in key specification without a key length"
tôi thấy lỗi này đã được thảo luận here. Tuy nhiên, tôi không thể sử dụng CharField
với giới hạn nhỏ, bởi vì tôi cần lưu trữ văn bản dài (cho đến 10.000 char trở lên).
sqlite3 và postgresql có thể thực hiện việc này (ý tôi là django không phàn nàn về thông số chính cho TEXT
).
Lý do tôi cần sử dụng mysql vì máy chủ nơi tôi sẽ triển khai ứng dụng django này chỉ cung cấp mysql, không có postgresql.
Vì vậy, có anyway tôi có thể đạt được điều này?
Rất hữu ích! cảm ơn – fpghost