我试图用django将一些文件和json数据插入数据库。 (我对Django来说是全新的,所以请怜悯:))
我的模型如下:
class Files(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
file_type = models.ForeignKey(to=FileType)
file = models.FileField(upload_to='media/%Y/%m/%d/', blank=True)
def __str__(self):
return self.file_type.name
我获取数据的视图如下:
def save_user(request):
user = json.loads(request.POST.get("user"))
for file_key in request.FILES.keys():
file = Files()
file.file_type = FileType.get_by_key(file_key.split('/')[1])
file.file = request.FILES[file_key]
file.save()
return HttpResponse("User saving...")
我收到请求的数据如下:
request.FILES
<MultiValueDict: {'file/ID_CARD': [<InMemoryUploadedFile: check.png (image/png)>], 'file/STATUTES': [<InMemoryUploadedFile: pictures.xlsx (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)>]}>
和用户
{'companyName': 'Autralis', 'btwNumber': '84515', 'address': 'Hundelgemsesteenweg 575', 'country': 'Belgium', 'zipcode': '9820', 'place': 'Merelbeke', 'phone': '+32 486386069', 'mobilePhone': '+32 486386069', 'firstName': 'Maida', 'lastName': 'Mesanovic', 'email': 'maida@autralis.com', 'userName': 'Maida', 'password': '123', 'confirmPassword': '123', 'files': [{'file_type': 'LETTER_HEAD', 'values': {'active': False, 'fileName': 'Blank letterhead', 'file': None}}, {'file_type': 'COMPANY_PICTURE', 'values': {'active': False, 'fileName': 'Company photo', 'file': None}}, {'file_type': 'ID_CARD', 'values': {'active': True, 'fileName': 'check', 'file': {}}}, {'file_type': 'STATUTES', 'values': {'active': True, 'fileName': 'pictures', 'file': {}}}], 'terms': True, 'emailNotifications': True, 'smsNotifications': True}
如何将其添加到数据库?