通知系统存在问题

时间:2015-10-26 01:11:52

标签: python django

我不确定这个通知系统看起来发生了什么,这里是错误

int() argument must be a string, a bytes-like object or a number, not 'SimpleLazyObject'

Views.py

def index(request):
    notifi = Notificaciones.objects.filter(user=request.user, Estado=False)
    if request.method == 'POST':
        form = RegistroUserForm(request.POST, request.FILES)
    else:
        form = RegistroUserForm()
    context = {
        'form': form,
        'notifi': notifi
    }

    return render(request,'app/index.html',context)

Models.py

class Notificaciones(models.Model):
    user = models.ManyToManyField(User)
    Tipo_de_notificaciones = ( (1,'Ofertas'),(2,'Error'),(3,'Informacion'))
    Tipo = models.IntegerField('Tipo de notificacion',choices=Tipo_de_notificaciones, default=3,)
    titulo = models.CharField("Nombre de la notifiacion",max_length=50)
    mensaje = HTMLField("Descripcion de la notificacion")
    imagen = models.ImageField("Imagen de la notificacion",upload_to="notificaciones")
    Fecha_Caducidad_notificacion = models.DateTimeField("Fecha de caducidad de la notificacion",auto_now_add=False)
    Estado = models.BooleanField("Estado de la notificacion", default=False)
    class Meta:
        verbose_name = 'Notificacion'
        verbose_name_plural = 'Notificaciones'
    def __str__(self):
        return self.titulo

@receiver(post_save, sender=User)
def mensaje_bienvenida(sender, **kwargs):
    if kwargs.get('creado', False):
        Notificaciones.objects.create(user=kwargs.get('instance'),
                                      titulo= "Bienvenido a la plataforma de Vulpini.co",                                      
                                      mensaje= 'Gracias por registrarte'
            )

Notificaciones.html

{% if notifi.count > 0 %}
        {% for notifi in notifi %}
           <ul>
              <li>
                {{ notifi.Tipo }}
                {{ notifi.titulo }}
                <img src="{{  notifi.imagen.url }}" alt="{{ notifi.titulo }}"/>
                {{ notifi.mensaje }}
                {{ notifi.Fecha_Caducidad_notificacion }}
              </li>
            </ul>
        {% endfor %}
    {% endif %}

为什么要显示错误,如果两天前工作,我什么都不做改变。 帮助我,谢谢你

1 个答案:

答案 0 :(得分:1)

你在views.py中尝试过类似的东西吗?

notifi = Notificaciones.objects.filter(user=request.user.id, Estado=False)

编辑:

也许这篇上一篇文章对您有所帮助。 django: Purpose of django.utils.functional.SimpleLazyObject?

或者看看我发现了什么,这也有帮助: Django int() argument must be a string or a number

希望这会有所帮助。 :)