Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

221
Vistas
Is there a way to have dictinary-like field in Django model?

Suppose, I am making a movie rating app. A logged-in user should be able to rate the movie with stars (in the range 1 to 5).

I want to quickly access all the rater's name along with their rating. If a user rates the movie again, the rating should be updated. At the same time, if a user decides to withdraw his rating i.e. provide zero rating, I would like to remove the entry from the field.

I believe dictionary would be the best choice to achieve the same. However, I am open for suggestions.

I also want a user to see all the movies the he/she has rated along with the rating.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

You should create an ForeignKey field between the user model and the voting model. To only allow a single vote, per user; per movie, you might want to create a unique key constraint, on the voting model, over the userid and the movieid.

The vote should then contain a relation to the movie and a rating. If a user withdraws his vote you remove it from database.

Using a dictionary will lead to problems for you as you will have multiple movies.

To increase the speed and performance counting the votes you might want to take a look at caching and simply cache the number of votes and update the number every time a vote was added/withdrawn by a user on the specific movie.

over 4 years ago · Santiago Trujillo Denunciar

0

You can use: update_or_create() method with django ORM. https://docs.djangoproject.com/en/1.10/ref/models/querysets/#update-or-create

over 4 years ago · Santiago Trujillo Denunciar

0

If the database you are using is Postgres, then you can make use of JSONField

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda