Python django api用于在数据库中创建数据
每个人,我都在尝试编写一个django api来在db中创建数据,下面是我的 models.py views.py我可以从表单ok创建数据 views.py 然而,当谈到api时,,,I jsut失败,下面是我的 api/url.py api/views.py 这是我的错误信息Python django api用于在数据库中创建数据,python,django,api,django-models,django-rest-framework,Python,Django,Api,Django Models,Django Rest Framework,每个人,我都在尝试编写一个django api来在db中创建数据,下面是我的 models.py views.py我可以从表单ok创建数据 views.py 然而,当谈到api时,,,I jsut失败,下面是我的 api/url.py api/views.py 这是我的错误信息 感谢所有回复我的人api_create方法似乎是完全冗余的,可以安全地删除。您的url.py应该指向views.py中的create\u thing方法 urlpatterns = [ ..... url
感谢所有回复我的人api_create方法似乎是完全冗余的,可以安全地删除。您的url.py应该指向views.py中的
create\u thing
方法
urlpatterns = [
.....
url(r'^productsTbls/create_thing/$',views.create_thing,name='api_create_t'),
]
不需要api_create_thing的原因是,您已经有了使用表单从用户收集数据并将其保存到db的代码。第二点是,使用GET方法接受用户输入不是一个好主意。你应该一直尝试使用POST(创建东西的工具)已经使用过的工具。你应该显示你的URL;您已经编写了接受9个参数的视图,但是您似乎没有传递任何参数。同时,既然您正在尝试编写API,为什么不使用django rest framework,它正是为此目的而设计的?对,我应该尝试使用django rest framework,,,但是我现在正在阅读它的文档,谢谢,所以我是对的,你的URL没有捕获任何参数,但是你的视图需要9个参数。它们应该来自哪里?您是否按照我的回答中的建议尝试更改URL.py?
def create_thing(request):
form_class = ProductsTblForm
# if we're coming from a submitted form, do this
if request.method == 'POST':
# grab the data from the submitted form and apply to # the form
form = form_class(request.POST, request.FILES)
if form.is_valid():
# create an instance but do not save yet
thing = form.save(commit=False)
# set the additional details
thing.user = request.user
thing.slug = slugify(thing.model_number)
# save the object
thing.save()
# redirect to our newly created thing
return redirect('thing_detail', slug=thing.slug)
# otherwise just create the form
else:
form = form_class()
return render(
request,
'things/create_thing.html',
{'form': form, 'login_user': request.user}
)
from django.conf.urls import url, include
from . import views
urlpatterns = [
.....
url(r'^productsTbls/create_thing/$',views.api_create_thing,name='api_create_t'),
]
......
from django.shortcuts import render, redirect
from django.views.decorators.csrf import csrf_exempt
........
@csrf_exempt
def api_create_thing( user_id ,model_number,name,release,feature, material,image,suggest,description,):
p1 = ProductsTbl(user_id = user_id ,model_number = model_number,slug = model_number ,name = name ,release = release ,feature = feature, material = material ,image=image,suggest = suggest,description = description )
p1.save()
return redirect('/api/productsTbls/')
urlpatterns = [
.....
url(r'^productsTbls/create_thing/$',views.create_thing,name='api_create_t'),
]