小编hai*_*der的帖子

Django :禁止直接分配给多对多集合的前端。改用 user.set()

当我尝试将当前登录的用户作为ManyToManyField.

TypeError: Direct assignment to the forward side of a many-to-many set is prohibited. Use user.set() instead.
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

视图.py

def add_to_cart(request , item):
    name = item
    size = request.POST.get("size")
    extras = request.POST.get("extras")
    c = Cart(item=name , size=size , extras=extras , user=request.user)
    c.save()
    return render(request , "orders/add_items.html" , {"message":f"{name} added to cart"})
Run Code Online (Sandbox Code Playgroud)

模型.py

class Cart(models.Model):
    item = models.CharField(max_length=64)
    size = models.DecimalField(max_digits=5,decimal_places=2)
    extras = models.CharField(max_length=64 , null=True, blank=True)
    user = models.ManyToManyField(User , related_name="member")

def __str__(self):
    return f"{item} added by {user}"
Run Code Online (Sandbox Code Playgroud)

python django python-3.x

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

标签 统计

django ×1

python ×1

python-3.x ×1