首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从管理页面删除Django中的ManyToManyField并单击按钮

从管理页面删除Django中的ManyToManyField并单击按钮
EN

Stack Overflow用户
提问于 2019-02-04 07:44:09
回答 1查看 1.4K关注 0票数 2

我有以下两种模式:

models.py

代码语言:javascript
复制
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

设计者模型是从用户模型扩展而来的,它与技能模型具有ManyToMany关系。我可以从管理页面向设计器实例添加技能,但没有删除选项。如何在管理页面上获得删除选项?我也想添加删除功能的按钮点击。如何将其添加到代码中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-04 09:04:56

ManyToMany关系字段中,没有delete功能,我们需要为此使用remove实例,或者为了清除字段值,我们需要使用clear 链接

为你的案子说

代码语言:javascript
复制
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 链接,那么您可以从管理站点更新您的ManyToManyField存储值。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54511905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档