从管理页面和按钮,点击删除ManyToManyField在Django

问题描述 投票:0回答:1

我有两个型号如下:

models.朋友

from django.db import models
from django.contrib.auth.models import User

class Skill(models.Model):
    skill = models.CharField(max_length=50)

    def __str__(self):
        return self.skill

class Designer(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    description = models.TextField(max_length=500, blank=True)    
    date_created = models.DateField(auto_now_add=True)
    profile_img = models.ImageField(upload_to="gallery",null=True, blank=True)
    skills = models.ManyToManyField(Skill, blank=True)
    experience = models.IntegerField(blank=True, null=True)
    account_type = models.CharField(max_length=10)

    def __str__(self):
        return self.user.username

设计模型从用户模式延伸,它与技能模型多对多的关系。我可以从管理页面中添加技能设计师实例,但没有删除选项。我怎样才能管理页面上删除选项?我也想上按一下按钮添加删除功能。我怎样才能增加它的代码?

django django-models
1个回答
1
投票

ManyToMany关系领域有我们需要使用delete实例为或以明确我们需要使用remove clear字段值没有link功能

说你的情况下,

our_desire_skill = skills.objects.filter(skill=search_skill)
desiner_user = Designer.objects.get(user=our_desire_user)
desiner_user.skills.remove(our_desire_skill)

如果你想从管理页面ManyToManyFields改变需要确保现场就像是raw_id_fields link然后你可以能够从更新管理网站的ManyToManyField储值。

© www.soinside.com 2019 - 2024. All rights reserved.