Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果不在数据库Django上保存,则无法向实例临时添加数据_Python_Django_Django Models_Django Templates_Django Views - Fatal编程技术网

Python 如果不在数据库Django上保存,则无法向实例临时添加数据

Python 如果不在数据库Django上保存,则无法向实例临时添加数据,python,django,django-models,django-templates,django-views,Python,Django,Django Models,Django Templates,Django Views,我有一系列的后果,而这些后果有一个相似之处 ManyToManyField属性,该属性存储所有具有类似结果的用户 我想要归档的是添加一个额外的时间属性调用isLiked 因此,在稍后的模板中,我可以向html添加一个数据属性,表明请求的用户已经喜欢了X结果 我正试图用这种方法做到这一点: views.py def list_consequences(request, proponsal_id): try: consequences: [Consequence] = Co

我有一系列的后果,而这些后果有一个相似之处 ManyToManyField属性,该属性存储所有具有类似结果的用户

我想要归档的是添加一个额外的时间属性调用isLiked

因此,在稍后的模板中,我可以向html添加一个数据属性,表明请求的用户已经喜欢了X结果

我正试图用这种方法做到这一点:

views.py

def list_consequences(request, proponsal_id):
    try:

        consequences: [Consequence] = Consequence.objects.filter(of_proponsal=proponsal_id)

        user_likes =request.user.likes_consequences.get_queryset()

        union = consequences | user_likes

        for consequence in union:
            aux =consequences.get(pk=consequence.pk)
            aux.isLiked=True


        pros: Consequence = consequences.filter(efecto=Consecuencia.PRO)
        against: Consequence = consequences.filter(efecto=Consecuencia.AGAINST)

        template = loader.get_template('participation/consequences.html')


        context = {
            'pros': pros,
            'against': against,
            'is_user_authenticated': str(request.user.is_authenticated).lower(),
        }
        return HttpResponse(template.render(context, request))

    except Consequence.DoesNotExist:
        raise Http404("The consequence with id doesn't exist")
因此,稍后在模板上,我可以执行以下操作:

后果.html

...
{% for pro  in pros %}
<button data-is-liked={{pro.isLiked}}> icon</button>
{% endfor %}
...
。。。
{pros%中的pro为%1}
偶像
{%endfor%}
...
有人知道我怎么做吗

提前谢谢

Django版本:2.0


Python:3.6.5

我最终以这种方式解决了它:

def _getConsequences(user: User, proponsal_id):
    consequences: [consequence] = Consequence.objects.filter(of_proponsal=proponsal_id)
    user_likes = user.like_consequence.get_queryset()
    pros: Consequence = consequences.filter(efect=Consecuencia.PRO)

    union = pros & user_likes
    pro_extra_data = []
    for pro in pros:
        if pro in union:
            pro.isLiked = True
        else:
            pro.isLiked = False
        pro_extra_data.append(pro)

    #... same procedure for contra_extra_data


    return pro_extra_data, contra_extra_data

为什么要临时保存而不是保存?因为我只需要它作为模板,在用户是否已标记为“喜欢”或“不喜欢”的基础上,在不同颜色上放置图标,并且我已保存用户喜欢的结果,问题是,我必须合并现有proponsal的结果和用户喜欢的结果,并且那些一致的结果将它们标记为IsLiked。您可以使用
会话来执行此操作。我只是快速检查文档,看起来您无法存储数组,但在我可以这样做的情况下,我也会有同样的问题,因为在模板上,我必须以某种方式进行连接