如何解决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 举报,一经查实,本站将立刻删除。