Python 用什么代替什么都不做只删除一个字段?
我想把这两个模型连接起来Python 用什么代替什么都不做只删除一个字段?,python,sql,django,database,django-models,Python,Sql,Django,Database,Django Models,我想把这两个模型连接起来 class t_data(models.Model): receiver = models.TextField() file_desc = models.TextField() file = models.FileField(upload_to='files') 另一种模式: class transaction_detail(models.Model): transaction_id = models.ForeignKey(
class t_data(models.Model):
receiver = models.TextField()
file_desc = models.TextField()
file = models.FileField(upload_to='files')
另一种模式:
class transaction_detail(models.Model):
transaction_id = models.ForeignKey(
t_data,
on_delete=models.DO_NOTHING,
)
sender=models.TextField()
receiver = models.TextField()
*是的,我正在使用DO_NOTHING,我读到使用它是错误的。但它不起作用
现在,当用户尝试删除其文件时,t_数据对象应该被删除,但事务的详细信息不应该更改。在我的视图中没有关于删除对象的特定内容。然而,简单的例子是
def delete_request(request,id):
requested = t_data.objects.get(id=id)
requested.delete()
return HttpResponseRedirect('/requests')
当我试图删除t_数据对象时,它会抛出一个完整性错误
错误:
完整性错误位于/已接受/1
外键约束失败
请求方法:获取
请求URL:
Django版本:3.1.7
异常类型:IntegrityError
异常值:外键约束失败 异常位置:C:\Users\ukfle\AppData\Local\Programs\Python\39\lib\site packages\django\db\backends\sqlite3\base.py,第413行,在execute中 Python可执行文件:C:\Users\ukfle\AppData\Local\Programs\Python\Python39\Python.exe Python版本:3.9.1 Python路径:
['C:\Users\ukfle\Documents\pro', 'C:\Users\ukfle\AppData\Local\Programs\Python\Python39\Python39.zip', 'C:\Users\ukfle\AppData\Local\Programs\Python\Python39\DLLs', 'C:\Users\ukfle\AppData\Local\Programs\Python\Python39\lib', 'C:\Users\ukfle\AppData\Local\Programs\Python\Python39', 'C:\Users\ukfle\AppData\Roaming\Python\Python39\site packages', 'C:\Users\ukfle\AppData\Local\Programs\Python\Python39\lib\site packages', 'C:\Users\ukfle\AppData\Local\Programs\Python\39\lib\site packages\win32', 'C:\Users\ukfle\AppData\Local\Programs\Python\39\lib\site packages\win32\lib', 'C:\Users\ukfle\AppData\Local\Programs\Python\Python39\lib\site packages\Pythonwin'] 服务器时间:2021年5月19日星期三14:05:40+0000 如何解决?或者用什么来代替无所事事?如果要解决此问题,也可以使用OneToOneField。非常感谢。
:)在中的on_delete参数下选中选项。您可以使用
SET_NULL
选项,该选项将数据设置为NULL
,但如上所述,该字段应为空DO_NOTHING
是您能做的最糟糕的事情,因为当删除发生时,数据保持原样,并且变成一个不存在的对象。有什么错误?添加完全错误traceback@JPG完成!你能帮我做这个吗谢谢!!。信息技术worked@Utsavkaf听到这个消息我很高兴。祝您有个美好的一天。