python - 如何在没有表单的情况下直接在 django 中将项目添加到数据库
问题描述
我知道,这个问题已经讨论过了,但我无法抓住它。
这是我有的两个模型
# Create your models here.
GENDER_CHOICES = [
('Male', 'M'),
('Female', 'F')]
class upload(models.Model):
name = models.CharField(max_length=100,null=True)
gender = models.CharField(max_length=10,null=True, choices=GENDER_CHOICES)
phone = models.CharField(max_length=50,null=True)
email= models.EmailField(max_length=50,null=True)
file=models.FileField(upload_to='uploads/',null=True)
def __str__(self):
return self.name
class text(models.Model):
texts=models.CharField(max_length=200,null=True,blank=True)
upload_text=models.ForeignKey(upload, blank=True, null=True, on_delete = models.CASCADE)
我有一个模型表格upload
。我插入了数据和音频文件。然后我希望这个音频文件转换为文本并将文本保存在数据库中。为此,我创建了另一个模型text
。
但我不知道如何在模型中输入与模型中输入的信息相关的文本upload
这是我的views.py文件功能
def display(request):
print('display functio')
d=upload.objects.last()
test=sr.takeCommand(d.file.path)
print(test) **# I can see text here**
p = text.objects.create(texts=test)
p.save(force_insert=True)
print(test)
return render(request,'thanks.html',{'print':test})
但我无法进入。它抛出一个错误
UNIQUE constraint failed: sub_app_text.id
解决方案
这是因为您插入了两次。方法[ .create(…)
Django-doc]已经插入到数据库中。因此,您可以将其实现为:
def display(request):
print('display functio')
d=upload.objects.last()
test=sr.takeCommand(d.file.path)
# will store the record in the database
p = text.objects.create(texts=test)
print(test)
return render(request,'thanks.html',{'print':test})
您可以将其链接到d
:
def display(request):
print('display functio')
d=upload.objects.last()
test=sr.takeCommand(d.file.path)
# will store the record in the database
p = text.objects.create(texts=test, upload_text=d)
print(test)
return render(request,'thanks.html',{'print':test})
注意:Django 中的模型是用 PerlCase 编写的,而不是 snake_case,因此您可能希望将模型从 重命名
为text
Text
。
推荐阅读
- javascript - 如何使用 JavaScript 布局(“绘制”)动态生成s 在 React 中的不同屏幕位置和大小?
- python - Re.search 在同一个字符串上不匹配
- keycloak - 在 keycloak 中触发自定义流程
- c# - 当应用程序在后台 Xamarin IOS FireBase 时推送通知
- java - 调整文本字体大小以适应 Javafx8 中的文本框
- java - Java 使用集合准备 SELECT SQL 语句
- github - 当我在google colab中导入github代码时,无法识别文件夹并且无法导入模块
- python - 我可以将值从一个 Python 文件传递到另一个文件吗?
- botframework - 通过 WebChat 以编程方式将文件发送到机器人
- javascript - 仅当您将鼠标悬停在下拉菜单上时才显示下拉菜单,否则当您将鼠标悬停在外面时隐藏下拉菜单