[FIXED] Füllen Sie meine Datenbank mit Daten aus einer API – Django Prject

Ausgabe

Ich möchte meine Datenbank mit Daten aus einer von mir verwendeten API füllen, die mir Datenbenutzer sendet.

Hier, wenn ein Benutzer bereits existiert und wir nur seine Informationen auf API-Ebene ändern, möchte ich nur die Änderung der Informationen anwenden, nicht den Benutzer duplizieren, und wenn er nicht in meiner Datenbank existiert, werde ich erstellen. Aber jedes Mal, wenn ich die API aufrufe, wenn der Benutzer bereits in meiner Datenbank existiert, erstellt sie ihn erneut (dupliziert) und ich möchte diese Seite nicht

Beachten Sie, dass ich Benutzerdaten in Form eines Wörterbuchs abrufe

Bitte wo ist das Problem

Ansichten.py

from .models import Utilisateur

url='http://userAPI/Users/GetUsers'
y=requests.get(url)
users=y.json()
all_users=users['user']
for one_user in all_users:
   user=Utilisateur(name=one_user['name'],adresse=one_user['adresse'],code=one_user['code'])
   user.save()

Modelle.py

from django.db import models

class Utilisateur(models.Model):
  name=models.CharField(max_length=100)
  adresse=models.CharField(max_length=255,blank=True,null=True)
  code=models.CharField(max_length=10)

Lösung

Sie verwenden ein eindeutiges Feld wie name und verwenden es in einem get_or_createAnruf:

for one_user in all_users:
    user = Utilisateur.objects.get_or_create(name=one_user['name'])
    user.adresse=one_user['adresse']
    user.code=one_user['code']
    user.save()


Beantwortet von –
Nealium


Antwort geprüft von –
Timothy Miller (FixError Admin)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like