微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

django 使用不同的外键更新多个实例

如何解决django 使用不同的外键更新多个实例

我正在尝试复制多个数据我只需要更改它们相关的外键我的问题是我能够复制但下面是我的代码 任何建议请

from django.db import models


class Category(models.Model):
    category_name = models.CharField(max_length=100)

    def __str__(self):
        return self.category_name

class Client(models.Model):
    cat = models.ForeignKey(Category,on_delete=models.CASCADE,null=True,blank=True)
    fname = models.CharField(max_length=100)
    lname = models.CharField(max_length=100)
    age = models.IntegerField()
    married = models.BooleanField(default=False)
    created_at = models.DateTimeField(auto_Now_add=True)
    updated_at = models.DateTimeField(auto_Now=True)

    def __str__(self):
        return self.fname + " " + self.lname + " " + str(self.cat)


def show_category(request,cat_id):
    clients = Client.objects.filter(cat__id=cat_id)
    if request.method =='POST':
        for i in clients:
            i.id = None
            i.cat.id=3
            i.save()
        return redirect('/')


    context = {'clients':clients}
    return render(request,'app/home_cat.html',context)

解决方法

请参阅 copying model instances 上的文档:

    def change_category(clients,new_category_id):
        for client in clients:
            client.pk = None
            client._state.adding = True
            client.cat_id = new_category_id
            client.save()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。