gpt4 book ai didi

python - 在 Django admin 中使用查询集进行多对多

转载 作者:太空宇宙 更新时间:2023-11-03 17:17:03 24 4
gpt4 key购买 nike

我正在尝试应用管理下拉功能(查询集)中的值。下面的代码有效,但仅适用于外键。

如果我尝试将此应用于多对多字段,我会收到一个 FieldError,提示“仅允许非关系和外键”。

def tag_Tagtest(self, request, queryset):
queryset.update(tag=Tag.objects.get(name__iexact='BLAH_BLAH'), updated=timezone.now())

这是我对ManyToMany的尝试:

-----models.py

class Product(models.Model):
name = models.CharField ("Name", max_length=400)
tag = models.ManyToMany (Tag, blank=True)


class Tag(models.Model):
name = models.CharField(max_length=30)
tag_type = models.CharField(max_length=30)
def __str__(self):
return self.name

----admin.py

def TEST_M2M (self, request, queryset):
queryset = self.model._meta.app_label, self.model._meta.model_name

如何使用上面的代码应用于多对多字段?

最佳答案

Django 无法一次将 M2M 值添加到多个对象,但您可以循环查询集。

blahblah=Tag.objects.get(name__iexact='BLAH_BLAH')
for product in queryset:
product.tag.add(blahblah)

关于python - 在 Django admin 中使用查询集进行多对多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33578321/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com