tengo un modelo
class Journals(models.Model): JOURNAL_ID = models.AutoField(primary_key=True) Journal_name = models.CharField(max_length=255) Journal_slug = models.SlugField(max_length=255)
que estoy tratando de agregar a una cookie y luego recuperar en otras vistas. Estoy haciendo esto de la siguiente manera
journal = request.COOKIES.get('journal') if journal: from_cookie = True else: journal = get_object_or_404(Journals, Journal_slug=journal_slug) from_cookie = False template = [...] template_context = { ... 'journal': journal, 'from_cookie': from_cookie, ... } response = render(request, template, template_context) response.set_cookie('journal', value=journal) return response
Sin embargo, parece que solo se agrega Journal_name a la cookie en lugar del objeto completo. De esta manera termino sin tener acceso a ninguno de sus otros campos. ¿Cómo hago para que el objeto de diario completo se agregue y recupere en su lugar?
En primer lugar, no utilice cookies directamente. Almacenar cosas en la sesión.
En segundo lugar, no intente almacenar objetos modelo de todos modos. Guarde la identificación y recupere el objeto a través de esa identificación cuando necesite:
request.session['journal_id'] = journal.pk
...
journal = Journal.objects.get(pk=request.session['journal_id'])