我有两个模型如下:
模型.py
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
Designer 模型扩展自 User 模型,它与 Skill 模型具有多对多关系。我可以从管理页面向设计器实例添加技能,但没有删除选项。如何在管理页面上获得删除选项?我还想添加单击按钮时的删除功能。我怎样才能将它添加到代码中?
In ManyToMany
关系字段没有delete
我们需要使用的功能remove
一个实例,或者为了清除我们需要使用的字段值clear
link https://docs.djangoproject.com/en/2.1/ref/models/relations/#django.db.models.fields.related.RelatedManager.remove
为你的情况说
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 https://docs.djangoproject.com/en/2.1/ref/contrib/admin/#django.contrib.admin.ModelAdmin.raw_id_fields然后您就可以更新您的ManyToManyField
从管理站点存储值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)