Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.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 - Fatal编程技术网

Python Django模型创建了两次?

Python Django模型创建了两次?,python,django,Python,Django,为什么我的属性模型在数据库中保存了两次?奇怪的 以下是我的视图代码: @login_required(login_url='/login/') @transaction.atomic() @reversion.create_revision() def add_item_type(request, id_item, id_item_type): item = Item.objects.get(id=id_item) item_type = ItemType.objects.get

为什么我的属性模型在数据库中保存了两次?奇怪的

以下是我的视图代码:

@login_required(login_url='/login/')
@transaction.atomic()
@reversion.create_revision()
def add_item_type(request, id_item, id_item_type):
    item = Item.objects.get(id=id_item)
    item_type = ItemType.objects.get(id=id_item_type)

    item.status = Item.DEPLOYED # Set to phase deployment
    item.save()
    for a in item_type.attribute_types.all(): # Create all attribute skeletons to item
        Attribute.objects.create(name=a.name, description=a.description, type=a.attr_type, item=item)
    ctx = {'item':item, 'item_type':item_type}
    return render_to_response('des/item/add_item_type.html', ctx, context_instance=RequestContext(request))
编辑:

当我查看我的数据库(postgres)时,我发现我的视图的循环被调用了两次(不是在同一个循环中保存两次),或者我的视图被调用了两次。我不知道为什么。我很确定这不是一个循环问题,因为在我的数据库中,属性类是这样保存的

id - name 
1 - fly 
2 - sit 
3 - run 
4 - fly 
5 - sit 
6 - run
你知道为什么吗?
要理解我的代码,请将ItemType视为类,将AttributeType视为类ItemType的属性,Item是ItemType的实例化,Attribute是AttributeType。

好的,我通过在属性模型(Attribute.name)中指定一个unique=True值来解决我的问题,因此在同一个Item类上没有相同的属性。我所做的只是一个“补丁”,但并没有解决真正的问题,视图被调用了两次。

好吧,这里有一个循环。为什么不在shell中检查
ItemType.objects.get(id=id\u item\u type)
的结果呢?您应该使用