helloo
我在DJANGO应用程序中有两个函数,我想在views.py中工作,第二个函数需要第一个函数的输出才能工作。
我的views.py(之前):
@login_required(login_url="login/")
def app_details(request,slug):
if request.method == "POST":
b = request.user.id
test = request.POST.get('index')
test_path_export=test+'add/path'
my_task_name(test,test_path_export)
save_alg(request.user,test_path_export)
return render(request, 'details.html'...............................
my_function_name.py
def my_function_name(input1,output1):
..................................
..................................
myalg.py
from django.contrib.auth.models import User
def save_alg(user_id,input1):
instance = MyModel.objects.create(user=user_id, field1=input1)
..................................
..................................
instance.save()
并且所有工作函数(my_task_name,save_alg)都可以正常工作......
现在我想从这两个函数中创建一个函数来处理某个函数,因为我想在将来使用celery添加异步任务,如果我有一个函数则很容易使用.delay
。< / p>
我将my_function_name.py更改为:
def my_function_name(user_id,input1,output1):
..................................
..................................
return save_alg(user_id,output1)
第二次尝试
def my_function_name(user_id,input1,output1):
..................................
..................................
save_alg(user_id,output1)
和我的views.py:
@login_required(login_url="login/")
def app_details(request,slug):
if request.method == "POST":
b = request.user.id
test = request.POST.get('index')
test_path_export=test+'add/path'
my_task_name(request.user,test,test_path_export)
return render(request, 'details.html'...............................
第instance = MyModel.objects.create(user=user_id, field1=input1)
行中的错误消息:
self.field.remote_field.model._meta.object_name,
ValueError: Cannot assign "28": "MyModel.user" must be a "User" instance.
我已添加:
from django.contrib.auth.models import User
import user
在所有python文件中。
任何想法如何修复此错误?
答案 0 :(得分:2)
user=foo
假设foo
本身是User
对象的实例。你传入的字符串应该是用户的ID:
instance = MyModel.objects.create(user_id=user_id, field1=input1)
^^^
传递User
个对象或将user=
更改为user_id=
。