我有包含用戶地址和他的電話號碼的 csv 檔案,我如何將其匯入我的地址表中。因為我不知道每個用戶的用戶 ID。
xlsx 中 的 CSV 檔案: csv 格式:
user_id__phone,address1,address2,state,country,pincode
99999999,"addrss","addres2",somestate,Country,11111
我收到以下錯誤
Line number: 1 - null value in column "user_id_id" of relation "proj_auth_useraddress" violates not-null constraint DETAIL: Failing row contains (432, null, null, someaddress, , , null).
但我知道用戶和地址的關系是通過他的電話號碼。 user_id__phone
# Models.py
class AppUser(AbstractUser):
phone = models.CharField(max_length=15, unique=True, null=True)
...
class UserAddress(models.Model):
address_id = models.AutoField(primary_key=True)
user_id = models.ForeignKey(AppUser, on_delete=models.CASCADE)
lat = models.FloatField(null=True, blank=True)
lng = models.FloatField(null=True, blank=True)
address1 = models.CharField(max_length=100)
address2 = models.CharField(max_length=100, null=True, blank=True)
city = models.CharField(max_length=50)
pincode = models.IntegerField()
# Admin.py
@admin.register(UserAddress)
class AddressAdmin(ImportExportModelAdmin):
resource_class = AddressAdminResource
# Resource.py
class AddressAdminResource(resources.ModelResource):
class Meta:
model = UserAddress
import_id_fields = ('address_id',)
uj5u.com熱心網友回復:
如果AppUser中的電話對于每個用戶都是唯一的,那么您可以使用pandas將記錄從 csv 遷移到資料庫
您可以嘗試以下解決方案:
import pandas as pd
csv_file = pd.read_csv(<yourcsvfile>.csv)
for index, rows in csv_file.iterrows():
user_id__phone = rows["user_id__phone"]
address1 = rows["address1"]
address2 = rows["address2"]
country = rows["country"]
pincode = rows["pincode"]
appuser_instance = AppUser.objects.get(phone=user_id__phone)
# get_or_create is used to eliminate forming or any duplicate record
usershipping, created = UserAddress.objects.get_or_create(
user_id=appuser_instance,
address1=address1,
address2=address2,
city=city,
pincode=pincode
)
# created defines whether new record was created or was edited on existing record
# created = True (new record created)
# craeted = False (edited on existing record)
if created:
usershipping.save()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/417362.html
標籤:
上一篇:如何從此表格中洗掉邊框
下一篇:Dockerbuild給了我這個錯誤“/bin/sh:-crequiresanargument,Thecommand'/bin/sh-c'returnedanon-zerocode
