У меня проблема с мутацией для добавления продукта, который имеет отношения один ко многим с другой моделью в graphQL.
Моя проблема в том, что я хочу создать новую стажировку из модели internship и связать ее с cv в модели CV с внешним ключом вот файл модели
class CV(models.Model):
photo = models.ImageField(upload_to='CV/%Y/%m/%d/', null=True)
headline = models.CharField(max_length=250)
education = models.CharField(max_length=250)
employment=models.CharField(max_length=250)
class Internships(models.Model):
employer=models.CharField(max_length=250)
position=models.CharField(max_length=250)
internship=models.ForeignKey(CV,on_delete=models.CASCADE,related_name="cv_internship")
файл схемы
class InternshipsType(DjangoObjectType):
class Meta:
model = Internships
fields=("id","employer","position")
class CVType(DjangoObjectType):
class Meta:
model = CV
fields = ("id", "photo",'headline','education','employment','cv_internship')
class InternshipsInput(graphene.InputObjectType):
employer=graphene.String()
position=graphene.String()
class CvInput(graphene.InputObjectType):
photo=graphene.String(required=True)
headline=graphene.String(required=True)
education=graphene.String(required=True)
employment=graphene.String()
internship=graphene.Field(InternshipsInput,id=graphene.Int())
class createCV(graphene.Mutation):
cv=graphene.Field(CVType)
class Arguments():
cv_data=CvInput()
@staticmethod
def mutate(root, info, cv_data):
cv = CV.objects.create(**cv_data)
return createCV(cv=cv)
class createInternships(graphene.Mutation):
class Arguments():
employer=graphene.String(required=True)
position=graphene.String(required=True)
internship=graphene.Field(InternshipsType)
@classmethod
def mutate(cls,root,info,employer,position,internship):
internship=Internships(employer=employer,position=position)
internship.save()
return createInternships(internship=internship)
я хочу добавить стажировку и связать ее с уже существующим резюме с помощью внешнего ключа
.
где я могу записать внешний ключ в классе createinternship в файле схемы
вот также запрос, который я написал
mutation{
addInternship(employer:"employername",position:"poition name"){__typename}
}
и вот ошибка mutate() missing 1 required positional argument: 'internship'
>