如何将新记录添加到多对多字段中



我正在使用Django/Rest框架进行一个小项目,我有两个模型(联系人和列表(我在联系人列表中有多对多字段。

我想知道如何将记录添加到此关系(多对多字段(。

from django.db import models
# Create your models here.
class List(models.Model):
name = models.CharField(blank=False, max_length=255)
comment = models.CharField(blank=False, max_length=255)
private = models.BooleanField(default=False)
allowed = models.BooleanField(default=False)
def __str__(self):
return self.name 

这是我的联系人模型

from django.db import models
from django.conf import settings
from list.models import List

# Create your models here.
class Contact(models.Model):
# field variables 
language_choices = (
('french', 'french'),
('english', 'english'),
)

""" Relations Between Models """
list = models.ManyToManyField(List)

我找了很长时间的解决方案。这是我的方法。

型号.py

class Candidate(models.Model):
skills = models.ManyToManyField(Skill, through='SkillExperience')
class SkillExperience(models.Model):
"""Skills and experiences for a candidate"""
skill = models.ForeignKey(Skill, on_delete=models.CASCADE, related_name='skill_to_candidate')
candidate = models.ForeignKey(Candidate, on_delete=models.CASCADE, related_name='candidate_to_skill')
experience = models.ForeignKey(Experience, on_delete=models.CASCADE, related_name='experience_to_candidate', default=1)

serializer.py

class CandidateSkillExperienceSerializer(serializers.ModelSerializer):
experience = ExperienceSerializer(many=False, allow_null=True)
skill = SkillSerializerLite(many=False, allow_null=False)
class Meta:
model = SkillExperience
fields = ('skill', 'experience')

class CandidateSerializer(serializers.ModelSerializer):
candidate_to_skill = CandidateSkillExperienceSerializer(many=True, required=False, allow_null=True)

最新更新