Estoy aprendiendo django creando una aplicación de sondeo. Para empezar tengo tres modelos Usuario, Pregunta y Opciones.
class User(....): .... Questions_voted = models.ManyToManyField(Question) ....esto significa que un usuario puede votar por tantas preguntas como quiera. El siguiente es The Question Model, que es simple y solo almacena el texto de la pregunta y la cantidad de personas que votaron por ella.
class Question(models.Model): question_text = models.CharField(max_length=500) vote_count = models.IntegerField(...)el siguiente es Choices que tiene un texto de elección y se refiere a la pregunta a la que pertenece.
class Choice(models.Models): choice_text = models.CharField(models.Model) question = models.ForeignKey(Question,...)Ahora quiero almacenar información sobre qué opción seleccionó un usuario para una pregunta. Está muy claro cuando lo piensas, pero estoy atascado debido a la falta de conocimiento de los tipos de campos en los modelos Django.
Te recomiendo que cambies el esquema del modelo. Aquí está el modelo sugerido:
Agregué el modelo UserVote que contiene información sobre la Question y Choice seleccionada por User .
from django.conf import settings class UserVote(models.Model): question = models.ForeignKey('Question') choice = models.ForeignKey('Choice') user = models.ForeignKey(settings.AUTH_USER_MODEL) EDITAR: Cómo leer el esquema sugerido: User puede tener muchos UserVote (hay una relación Many-To-One : en Django simplemente agrega ForeignKey a UserVote ). Cada UserVote debe tener una sola Question y Choice . El resto es tu antiguo esquema. Por cierto, utilicé la notación de pie de cuervo ( https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model#Crow.27s_foot_notation ).