相关疑难解决方法(0)

克隆继承的django模型实例

当我克隆一个django模型实例时,我习惯于清理'pk'字段.这似乎不适用于继承的模型:

拿着这个 :

class ModelA(models.Model):
    info1 = models.CharField(max_length=64)

class ModelB(ModelA):
    info2 = models.CharField(max_length=64)

class ModelC(ModelB):
    info3 = models.CharField(max_length=64)
Run Code Online (Sandbox Code Playgroud)

现在让我们创建一个实例并按照"通常"的方式克隆它(我使用的是django shell):

In [1]: c=ModelC(info1="aaa",info2="bbb",info3="ccc")

In [2]: c.save()

In [3]: c.pk
Out[3]: 1L

In [4]: c.pk=None  <------ to clone

In [5]: c.save()   <------ should generate a new instance with a new index key

In [6]: c.pk       
Out[6]: 1L         <------ but don't

In [7]: ModelC.objects.all()
Out[7]: [<ModelC: ModelC object>]   (only one instance !)
Run Code Online (Sandbox Code Playgroud)

我发现的唯一方法是:

In [16]: c.pk =None

In [17]: c.id=None

In [21]: …
Run Code Online (Sandbox Code Playgroud)

python django django-models

7
推荐指数
1
解决办法
1281
查看次数

如何在Django 1.8中多次保存相同的表单?

我有一个型号产品和相应的表格产品,我需要用5个产品来更新库存,所以我输入了产品的数据,并询问我想要存储多少项目,因为所有要保存的产品都是同样,除了Django默认ID,我想在视图中做这样的事情:

for i in range(0, 5):
   form.save()
Run Code Online (Sandbox Code Playgroud)

不幸的是,这只保存了最后一个表格

我怎么能达到我的需要呢?

python django

7
推荐指数
1
解决办法
1272
查看次数

Django维护模型对象的版本

我有一个模型目标,它有两个M2M字段,并由另一个模型事件引用.现在,要求是目标是可编辑的,这意味着我可以从M2M字段添加/删除并添加/删除事件.但是编辑会经过审核,只有在批准后才会反映出更改,或者在拒绝的情况下,必须还原更改.

我已经通过深度扫描,但它不符合我的目的,因为我可以说如果x=deepcopy(goal object)我得到目标对象的副本,但我不确定我能用它做什么.

然后我从django.forms模块了解了model_to_dict,它序列化了整个对象,这很方便.我想可能是我可以使用这个字典创建一个原始目标为外键的模型RevisedGoal.这是可行的解决方案吗?有没有办法实现这个目标?

python django

6
推荐指数
1
解决办法
826
查看次数

如何修改查询集并将其另存为新对象?

我需要为特定模型查询一组对象,更改单个属性/列(“帐户”),然后将整个查询集的对象保存为新对象/行。换句话说,我想复制对象,并在重复项上更改单个属性(“帐户”)。我基本上是创建一个新帐户,然后遍历每个模型并将以前帐户的对象复制到新帐户,因此我将使用不同的模型重复执行此操作,可能使用 django shell。我应该如何处理这个问题?可以在查询集级别完成还是需要遍历所有对象?

IE,

MyModel.objects.filter(account="acct_1")
# Now I need to set account = "acct_2" for the entire queryset, 
# and save as new rows in the database
Run Code Online (Sandbox Code Playgroud)

django django-queryset

4
推荐指数
1
解决办法
8928
查看次数

Django - 如何在不对源对象应用克隆更改的情况下克隆对象

最好用例子来描述:

看法:

def my_view(request):
    obj_old = Inventories.objects.get(id = source_id)
    obj_new = obj_old 
    obj_old.some_field = 0
    obj_old.save()

    obj_new.some_field = 1
    obj_new.id = None
    obj_new.save()
Run Code Online (Sandbox Code Playgroud)

问题是,我做出obj_new的变化也适用于obj_old使的值some_field是1两obj_oldobj_new。任何想法如何解决这一问题 ?

python django

4
推荐指数
1
解决办法
1682
查看次数

标签 统计

django ×5

python ×4

django-models ×1

django-queryset ×1