Я не могу понять, как разместить данные формы ввода angular в базе данных (mongodb), используя Django Rest API

Я не могу понять, как разместить данные формы ввода angular в базе данных (mongodb), используя Django Rest API. В интернете не хватает учебников и документации по работе с django и angular вместе с mongodb. или, может быть, у меня туннельное зрение. Если у кого-то есть ссылка, которая может решить мою проблему, было бы здорово.

Ниже приведен html-файл моего angular'а, где вы можете увидеть форму

<form (ngSubmit)="onSubmit()">
            <div class="form-group">
              <label for="InputAttackTitle">Attack Title</label>
              <input ngModel type="text" class="form-control" name="AttackTitle" id="InputAttackTitle" placeholder="Enter Attack Title">
            </div>
            <div class="form-group">
              <label for="InputAttackDescripton">Attack Description</label>
              <textarea ngModel class="form-control" name="AttackDescription" id="InputAttackDescripton" placeholder="Enter Attack Description" ></textarea>
            </div>
            <button type="submit" class="btn btn-primary">Submit</button>
          </form>
          <br>
          </div>

Здесь вы можете увидеть файл component.ts

export class IconsComponent implements OnInit {
  form: FormGroup;
  constructor(config: NgbModalConfig, private modalService: NgbModal,private http:HttpClient, public fb:FormBuilder) 
  { 
    config.backdrop = 'static';
    config.keyboard = false;
    this.form = this.fb.group({
      AttackTitle: [''],
      AttackDescription: [null]
    })
  }
  AttackTitle:any;
  AttackDescription:any;
onSubmit(){

  var formData:any = new FormData();
  formData.append("AttackTitle",this.form.get('AttackTitle').value);
  formData.append("AttackDescription",this.form.get('AttackDescription').value);
  this.http.post('http://127.0.0.1:8000/attackinfo', formData).subscribe(
      (response) => {
      return console.log(response);
    },
      (error) => console.log(error)
    )

Ниже приведен класс моделей django

class AttackInfo(models.Model):
AttackTitle=models.CharField(max_length=70, blank=False)
AttackDescription = models.TextField(default='',blank=False)

Ниже представлен файл просмотра

@csrf_exempt
def AttackInfoAPI(request,id=0):
    if request.method=='GET':   
        attackinfo = AttackInfo.objects.all()
        attackinfo_serializer=AttackInfoSerializer(attackinfo,many=True)
        return JsonResponse(attackinfo_serializer.data,safe=False)
    elif request.method=='POST':
        attackinfo_data=JSONParser().parse(request)
        attackinfo_serializer=AttackInfoSerializer(data=attackinfo_data)
        if attackinfo_serializer.is_valid():
            attackinfo_serializer.save()
            return JsonResponse("Added Successfully",safe=False)
        return JsonResponse("Failed to Add",safe=False)

Еще одна вещь, запрос get работает нормально, у меня проблемы только с запросом Post, возможно потому что я только начинаю как новичок (так что извините XD)

Ниже представлен код URL

urlpatterns=[
   re_path(r'^attackinfo$',views.AttackInfoAPI),
   re_path(r'^attackinfo/([0-9]+)$',views.AttackInfoAPI),

Поскольку вы не добавили логирование, показывающее ошибку, следующее основано на предположениях....

В Django вы ожидаете, что тело будет в формате JSON, FormData, которая используется в вызове http.post, также должна быть в формате JSON. Возможно, этого можно добиться, изменив вызов post на:

this.http.post('http://127.0.0.1:8000/attackinfo', JSON.stringify(formData)).subscribe

Вернуться на верх