0
I가 다음 장고 모델 :처리 ManyToMany 필드
class Article(models.Model):
name = models.CharField(max_length=30, unique=True)
tags = models.ManyToManyField(Tag)
...
class Tag(models.Model):
name = models.CharField(max_length=30, unique=True)
...
내가 즉,
{ 'name': 'My Org Name', 'tags': [1,2,3] }
POST 요청을 통해 기사를 작성하는 동안 태그를 기존의 목록을 추가 할 수 있도록하고 싶습니다
여기서 [1, 2, 3]은 태그 ID 목록입니다.
class ArticleSerializer(serializers.ModelSerializer):
tags = serializers.PrimaryKeyRelatedField(many=True, read_only=True, allow_null=True)
class Meta:
model = Article
fields = ('name', 'tags', ...)
def create(self, validated_data):
# in create I will add tags, i.e. article.add(tag)
return Article.objects.create_article(**validated_data)
을하지만 그때 나는 기존의 태그 인스턴스에 속하는 전달되는 태그의 ID를 알 수 있도록 몇 가지 확인을하고 싶습니다 :
내 시리얼은 다음과 같습니다. 그래서 아래의 메소드를 시리얼 라이저에 추가하려고 시도했다.
def validate_tags(self, tags):
if tags:
for tag in tags:
if not Tag.get(pk=tag):
raise ValueError('Tag with id not found...')
return tags
어떤 이유로이 유효성 검사 방법이 실행되지 않습니다. 내가 기사에 태그를 추가하는 것을 처리 할 수있는 올바른 방법을 찾으려고 노력하고 있는데, 어떤 제안이라도 높이 평가 될 것입니다.
이것은 내가 찾고있는 것입니다. 고맙습니다 :) – foobar